https://github.com/megamsys/radosgw-s3
s3 api for ceph
https://github.com/megamsys/radosgw-s3
Last synced: 2 months ago
JSON representation
s3 api for ceph
- Host: GitHub
- URL: https://github.com/megamsys/radosgw-s3
- Owner: megamsys
- License: apache-2.0
- Created: 2015-10-05T06:31:54.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2017-03-13T15:12:26.000Z (over 8 years ago)
- Last Synced: 2025-08-09T20:56:19.423Z (2 months ago)
- Language: Ruby
- Size: 335 KB
- Stars: 6
- Watchers: 9
- Forks: 13
- Open Issues: 2
-
Metadata Files:
- Readme: README.rdoc
- License: LICENSE
Awesome Lists containing this project
README
= radosgw-S3
This gem is used to access ceph storage and to create radosgw-admin user.
== Installation
gem install radosgw-s3
= Ceph-radosgw user
radosgw-admin guide to {create radosgw user}[http://docs.ceph.com/docs/master/radosgw/admin/].
== Usage
=== Initialize the service
require "radosgw-s3"
service = CEPH::User.new(:ipaddress => "RADOSGW_HOST_IP",
:username => "RADOSGW_HOST_USERNAME",
:user_password => "RADOSGW_HOST_USER_PASSWORD",
)=== create user
service.create("UID_NAME", "DISPLAY_NAME")
It will give you the access_key and secret_key in hash format
{"access_key"=>"8OC3R0QYPOW9TWE6M4L7", "secret_key"=>"+dDV9U+0hx7VufeFGWvF+34AC9g1IcrsIrOzLtZL"}
=== Get user Usage
service.usage("UID_NAME")
It will return something like
{"total_objects"=>"2", "total_bytes"=>"102400", "last_update"=>"2015-10-09 05:45:02.466953Z"}
== See also
* radosgw-admin[http://docs.ceph.com/docs/master/radosgw/admin/]
= radosgw-S3
radosgw-S3 library provides access to {Ceph's radosgw storage}[http://docs.ceph.com/docs/master/radosgw/].
=== Initialize the service
require "radosgw-s3"
service = S3::Service.new(:access_key_id => "...",
:secret_access_key => "...",
:host => "127.0.0.1",
:port => 8000 # Defaults to 443 or 80 if not set
)=== List buckets
service.buckets
#=> [#,
# #]=== Find bucket
first_bucket = service.buckets.find("first-bucket")
#=> #=== Create bucket
new_bucket = service.buckets.build("newbucketname")
new_bucket.save(:location => :eu)=== List objects in a bucket
first_bucket.objects
#=> [#,
# #]=== Find object in a bucket
object = first_bucket.objects.find("lenna.png")
#=> #=== Access object metadata (cached from find)
object.content_type
#=> "image/png"=== Access object content (downloads the object)
object.content
#=> "\x89PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00..."=== Delete an object
object.destroy
#=> true=== Create an object
new_object = bucket.objects.build("bender.png")
#=> #new_object.content = open("bender.png")
new_object.save
#=> truePlease note that new objects are created with "private" ACL by
default.=== Fetch ACL
object = bucket.objects.find('lenna.png')
object.request_acl # or bucket.request_aclThis will return hash with all users/groups and theirs permissions
=== Modify ACL
object = bucket.objects.find("lenna.png")
object.copy(:key => "lenna.png", :bucket => bucket, :acl => :public_read)== See also
* rubygems[http://rubygems.org/gems/radosgw-s3]
* repository[http://github.com/megamsys/radosgw-s3]
* {issue tracker}[http://github.com/megamsys/radosgw-s3/issues]== Copyright
See LICENSE[http://github.com/megamsys/s3/raw/master/LICENSE] for details.