mirror of https://github.com/ceph/ceph
115 lines
2.2 KiB
ReStructuredText
115 lines
2.2 KiB
ReStructuredText
.. _python_swift:
|
|
|
|
=====================
|
|
Python Swift Examples
|
|
=====================
|
|
|
|
Create a Connection
|
|
===================
|
|
|
|
This creates a connection so that you can interact with the server:
|
|
|
|
.. code-block:: python
|
|
|
|
import swiftclient
|
|
user = 'account_name:username'
|
|
key = 'your_api_key'
|
|
|
|
conn = swiftclient.Connection(
|
|
user=user,
|
|
key=key,
|
|
authurl='https://objects.dreamhost.com/auth',
|
|
)
|
|
|
|
|
|
Create a Container
|
|
==================
|
|
|
|
This creates a new container called ``my-new-container``:
|
|
|
|
.. code-block:: python
|
|
|
|
container_name = 'my-new-container'
|
|
conn.put_container(container_name)
|
|
|
|
|
|
Create an Object
|
|
================
|
|
|
|
This creates a file ``hello.txt`` from the file named ``my_hello.txt``:
|
|
|
|
.. code-block:: python
|
|
|
|
with open('hello.txt', 'r') as hello_file:
|
|
conn.put_object(container_name, 'hello.txt',
|
|
contents= hello_file.read(),
|
|
content_type='text/plain')
|
|
|
|
|
|
List Owned Containers
|
|
=====================
|
|
|
|
This gets a list of containers that you own, and prints out the container name:
|
|
|
|
.. code-block:: python
|
|
|
|
for container in conn.get_account()[1]:
|
|
print(container['name'])
|
|
|
|
The output will look something like this::
|
|
|
|
mahbuckat1
|
|
mahbuckat2
|
|
mahbuckat3
|
|
|
|
List a Container's Content
|
|
==========================
|
|
|
|
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:: python
|
|
|
|
for data in conn.get_container(container_name)[1]:
|
|
print('{0}\t{1}\t{2}'.format(data['name'], data['bytes'], data['last_modified']))
|
|
|
|
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:: python
|
|
|
|
obj_tuple = conn.get_object(container_name, 'hello.txt')
|
|
with open('my_hello.txt', 'w') as my_hello:
|
|
my_hello.write(obj_tuple[1])
|
|
|
|
|
|
Delete an Object
|
|
================
|
|
|
|
This deletes the object ``hello.txt``:
|
|
|
|
.. code-block:: python
|
|
|
|
conn.delete_object(container_name, 'hello.txt')
|
|
|
|
Delete a Container
|
|
==================
|
|
|
|
.. note::
|
|
|
|
The container must be empty! Otherwise the request won't work!
|
|
|
|
.. code-block:: python
|
|
|
|
conn.delete_container(container_name)
|
|
|