initial code repo
[stor4nfv.git] / src / ceph / doc / radosgw / swift / ruby.rst
diff --git a/src/ceph/doc/radosgw/swift/ruby.rst b/src/ceph/doc/radosgw/swift/ruby.rst
new file mode 100644 (file)
index 0000000..a20b66d
--- /dev/null
@@ -0,0 +1,119 @@
+.. _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')