X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fdoc%2Fradosgw%2Fs3%2Fruby.rst;fp=src%2Fceph%2Fdoc%2Fradosgw%2Fs3%2Fruby.rst;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=435b3c63083da3ab122c97dbabe2df98f2219c4d;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/doc/radosgw/s3/ruby.rst b/src/ceph/doc/radosgw/s3/ruby.rst deleted file mode 100644 index 435b3c6..0000000 --- a/src/ceph/doc/radosgw/s3/ruby.rst +++ /dev/null @@ -1,364 +0,0 @@ -.. _ruby: - -Ruby `AWS::SDK`_ Examples (aws-sdk gem ~>2) -=========================================== - -Settings ---------------------- - -You can setup the connection on global way: - -.. code-block:: ruby - - Aws.config.update( - endpoint: 'https://objects.dreamhost.com.', - access_key_id: 'my-access-key', - secret_access_key: 'my-secret-key', - force_path_style: true, - region: 'us-east-1' - ) - - -and instantiate a client object: - -.. code-block:: ruby - - s3_client = Aws::S3::Client.new - -Listing Owned Buckets ---------------------- - -This gets a list of buckets that you own. -This also prints out the bucket name and creation date of each bucket. - -.. code-block:: ruby - - s3_client.list_buckets.buckets.each do |bucket| - puts "#{bucket.name}\t#{bucket.creation_date}" - end - -The output will look something like this:: - - mahbuckat1 2011-04-21T18:05:39.000Z - mahbuckat2 2011-04-21T18:05:48.000Z - mahbuckat3 2011-04-21T18:07:18.000Z - - -Creating a Bucket ------------------ - -This creates a new bucket called ``my-new-bucket`` - -.. code-block:: ruby - - s3_client.create_bucket(bucket: 'my-new-bucket') - -If you want a private bucket: - -`acl` option accepts: # private, public-read, public-read-write, authenticated-read - -.. code-block:: ruby - - s3_client.create_bucket(bucket: 'my-new-bucket', acl: 'private') - - -Listing a Bucket's Content --------------------------- - -This gets a list of hashes with the contents of each object -This also prints out each object's name, the file size, and last -modified date. - -.. code-block:: ruby - - s3_client.get_objects(bucket: 'my-new-bucket').contents.each do |object| - puts "#{object.key}\t#{object.size}\t#{object.last-modified}" - end - -The output will look something like this if the bucket has some files:: - - myphoto1.jpg 251262 2011-08-08T21:35:48.000Z - myphoto2.jpg 262518 2011-08-08T21:38:01.000Z - - -Deleting a Bucket ------------------ -.. note:: - The Bucket must be empty! Otherwise it won't work! - -.. code-block:: ruby - - s3_client.delete_bucket(bucket: 'my-new-bucket') - - -Forced Delete for Non-empty Buckets ------------------------------------ -First, you need to clear the bucket: - -.. code-block:: ruby - - Aws::S3::Bucket.new('my-new-bucket', client: s3_client).clear! - -after, you can destroy the bucket - -.. code-block:: ruby - - s3_client.delete_bucket(bucket: 'my-new-bucket') - - -Creating an Object ------------------- - -This creates a file ``hello.txt`` with the string ``"Hello World!"`` - -.. code-block:: ruby - - s3_client.put_object( - key: 'hello.txt', - body: 'Hello World!', - bucket: 'my-new-bucket', - content_type: 'text/plain' - ) - - -Change an Object's ACL ----------------------- - -This makes the object ``hello.txt`` to be publicly readable, and ``secret_plans.txt`` -to be private. - -.. code-block:: ruby - - s3_client.put_object_acl(bucket: 'my-new-bucket', key: 'hello.txt', acl: 'public-read') - - s3_client.put_object_acl(bucket: 'my-new-bucket', key: 'private.txt', acl: 'private') - - -Download an Object (to a file) ------------------------------- - -This downloads the object ``poetry.pdf`` and saves it in -``/home/larry/documents/`` - -.. code-block:: ruby - - s3_client.get_object(bucket: 'my-new-bucket', key: 'poetry.pdf', response_target: '/home/larry/documents/poetry.pdf') - - -Delete an Object ----------------- - -This deletes the object ``goodbye.txt`` - -.. code-block:: ruby - - s3_client.delete_object(key: 'goodbye.txt', bucket: 'my-new-bucket') - - -Generate Object Download URLs (signed and unsigned) ---------------------------------------------------- - -This generates an unsigned download URL for ``hello.txt``. This works -because we made ``hello.txt`` public by setting the ACL above. -This then generates a signed download URL for ``secret_plans.txt`` that -will work for 1 hour. Signed download URLs will work for the time -period even if the object is private (when the time period is up, the -URL will stop working). - -.. code-block:: ruby - - puts Aws::S3::Object.new( - key: 'hello.txt', - bucket_name: 'my-new-bucket', - client: s3_client - ).public_url - - puts Aws::S3::Object.new( - key: 'secret_plans.txt', - bucket_name: 'hermes_ceph_gem', - client: s3_client - ).presigned_url(:get, expires_in: 60 * 60) - -The output of this will look something like:: - - http://objects.dreamhost.com/my-bucket-name/hello.txt - http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX - -.. _`AWS::SDK`: http://docs.aws.amazon.com/sdkforruby/api/Aws/S3/Client.html - - - -Ruby `AWS::S3`_ Examples (aws-s3 gem) -===================================== - -Creating a Connection ---------------------- - -This creates a connection so that you can interact with the server. - -.. code-block:: ruby - - AWS::S3::Base.establish_connection!( - :server => 'objects.dreamhost.com', - :use_ssl => true, - :access_key_id => 'my-access-key', - :secret_access_key => 'my-secret-key' - ) - - -Listing Owned Buckets ---------------------- - -This gets a list of `AWS::S3::Bucket`_ objects that you own. -This also prints out the bucket name and creation date of each bucket. - -.. code-block:: ruby - - AWS::S3::Service.buckets.each do |bucket| - puts "#{bucket.name}\t#{bucket.creation_date}" - end - -The output will look something like this:: - - mahbuckat1 2011-04-21T18:05:39.000Z - mahbuckat2 2011-04-21T18:05:48.000Z - mahbuckat3 2011-04-21T18:07:18.000Z - - -Creating a Bucket ------------------ - -This creates a new bucket called ``my-new-bucket`` - -.. code-block:: ruby - - AWS::S3::Bucket.create('my-new-bucket') - - -Listing a Bucket's Content --------------------------- - -This gets a list of hashes with the contents of each object -This also prints out each object's name, the file size, and last -modified date. - -.. code-block:: ruby - - new_bucket = AWS::S3::Bucket.find('my-new-bucket') - new_bucket.each do |object| - puts "#{object.key}\t#{object.about['content-length']}\t#{object.about['last-modified']}" - end - -The output will look something like this if the bucket has some files:: - - myphoto1.jpg 251262 2011-08-08T21:35:48.000Z - myphoto2.jpg 262518 2011-08-08T21:38:01.000Z - - -Deleting a Bucket ------------------ -.. note:: - The Bucket must be empty! Otherwise it won't work! - -.. code-block:: ruby - - AWS::S3::Bucket.delete('my-new-bucket') - - -Forced Delete for Non-empty Buckets ------------------------------------ - -.. code-block:: ruby - - AWS::S3::Bucket.delete('my-new-bucket', :force => true) - - -Creating an Object ------------------- - -This creates a file ``hello.txt`` with the string ``"Hello World!"`` - -.. code-block:: ruby - - AWS::S3::S3Object.store( - 'hello.txt', - 'Hello World!', - 'my-new-bucket', - :content_type => 'text/plain' - ) - - -Change an Object's ACL ----------------------- - -This makes the object ``hello.txt`` to be publicly readable, and ``secret_plans.txt`` -to be private. - -.. code-block:: ruby - - policy = AWS::S3::S3Object.acl('hello.txt', 'my-new-bucket') - policy.grants = [ AWS::S3::ACL::Grant.grant(:public_read) ] - AWS::S3::S3Object.acl('hello.txt', 'my-new-bucket', policy) - - policy = AWS::S3::S3Object.acl('secret_plans.txt', 'my-new-bucket') - policy.grants = [] - AWS::S3::S3Object.acl('secret_plans.txt', 'my-new-bucket', policy) - - -Download an Object (to a file) ------------------------------- - -This downloads the object ``poetry.pdf`` and saves it in -``/home/larry/documents/`` - -.. code-block:: ruby - - open('/home/larry/documents/poetry.pdf', 'w') do |file| - AWS::S3::S3Object.stream('poetry.pdf', 'my-new-bucket') do |chunk| - file.write(chunk) - end - end - - -Delete an Object ----------------- - -This deletes the object ``goodbye.txt`` - -.. code-block:: ruby - - AWS::S3::S3Object.delete('goodbye.txt', 'my-new-bucket') - - -Generate Object Download URLs (signed and unsigned) ---------------------------------------------------- - -This generates an unsigned download URL for ``hello.txt``. This works -because we made ``hello.txt`` public by setting the ACL above. -This then generates a signed download URL for ``secret_plans.txt`` that -will work for 1 hour. Signed download URLs will work for the time -period even if the object is private (when the time period is up, the -URL will stop working). - -.. code-block:: ruby - - puts AWS::S3::S3Object.url_for( - 'hello.txt', - 'my-new-bucket', - :authenticated => false - ) - - puts AWS::S3::S3Object.url_for( - 'secret_plans.txt', - 'my-new-bucket', - :expires_in => 60 * 60 - ) - -The output of this will look something like:: - - http://objects.dreamhost.com/my-bucket-name/hello.txt - http://objects.dreamhost.com/my-bucket-name/secret_plans.txt?Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXX&Expires=1316027075&AWSAccessKeyId=XXXXXXXXXXXXXXXXXXX - -.. _`AWS::S3`: http://amazon.rubyforge.org/ -.. _`AWS::S3::Bucket`: http://amazon.rubyforge.org/doc/ -