mirror of https://github.com/ceph/ceph
120 lines
2.2 KiB
ReStructuredText
120 lines
2.2 KiB
ReStructuredText
|
.. _ruby_swift:
|
||
|
|
||
|
=====================
|
||
|
Ruby Swift Examples
|
||
|
=====================
|
||
|
|
||
|
Create a Connection
|
||
|
===================
|
||
|
|
||
|
This creates a connection so that you can interact with the server:
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
require 'cloudfiles'
|
||
|
username = 'account_name:user_name'
|
||
|
api_key = 'your_secret_key'
|
||
|
|
||
|
conn = CloudFiles::Connection.new(
|
||
|
:username => username,
|
||
|
:api_key => api_key,
|
||
|
:auth_url => 'http://objects.dreamhost.com/auth'
|
||
|
)
|
||
|
|
||
|
|
||
|
Create a Container
|
||
|
==================
|
||
|
|
||
|
This creates a new container called ``my-new-container``
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
container = conn.create_container('my-new-container')
|
||
|
|
||
|
|
||
|
Create an Object
|
||
|
================
|
||
|
|
||
|
This creates a file ``hello.txt`` from the file named ``my_hello.txt``
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
obj = container.create_object('hello.txt')
|
||
|
obj.load_from_filename('./my_hello.txt')
|
||
|
obj.content_type = 'text/plain'
|
||
|
|
||
|
|
||
|
|
||
|
List Owned Containers
|
||
|
=====================
|
||
|
|
||
|
This gets a list of Containers that you own, and also prints out
|
||
|
the container name:
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
conn.containers.each do |container|
|
||
|
puts container
|
||
|
end
|
||
|
|
||
|
The output will look something like this::
|
||
|
|
||
|
mahbuckat1
|
||
|
mahbuckat2
|
||
|
mahbuckat3
|
||
|
|
||
|
|
||
|
List a Container's Contents
|
||
|
===========================
|
||
|
|
||
|
This gets a list of objects in the container, and prints out each
|
||
|
object's name, the file size, and last modified date:
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
require 'date' # not necessary in the next version
|
||
|
|
||
|
container.objects_detail.each do |name, data|
|
||
|
puts "#{name}\t#{data[:bytes]}\t#{data[:last_modified]}"
|
||
|
end
|
||
|
|
||
|
The output will look something like this::
|
||
|
|
||
|
myphoto1.jpg 251262 2011-08-08T21:35:48.000Z
|
||
|
myphoto2.jpg 262518 2011-08-08T21:38:01.000Z
|
||
|
|
||
|
|
||
|
|
||
|
Retrieve an Object
|
||
|
==================
|
||
|
|
||
|
This downloads the object ``hello.txt`` and saves it in
|
||
|
``./my_hello.txt``:
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
obj = container.object('hello.txt')
|
||
|
obj.save_to_filename('./my_hello.txt')
|
||
|
|
||
|
|
||
|
Delete an Object
|
||
|
================
|
||
|
|
||
|
This deletes the object ``goodbye.txt``:
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
container.delete_object('goodbye.txt')
|
||
|
|
||
|
|
||
|
Delete a Container
|
||
|
==================
|
||
|
|
||
|
.. note::
|
||
|
|
||
|
The container must be empty! Otherwise the request won't work!
|
||
|
|
||
|
.. code-block:: ruby
|
||
|
|
||
|
container.delete_container('my-new-container')
|