CloudFilesDriver¶
-
class
cloudstorage.drivers.rackspace.
CloudFilesDriver
(key, secret=None, region='IAD', **kwargs)[source]¶ Driver for interacting with Rackspace Cloud Files.
from cloudstorage.drivers.rackspace import CloudFilesDriver storage = CloudFilesDriver(key='<my-rackspace-username>', secret='<my-rackspace-secret-key>', region='IAD') # <Driver: CLOUDFILES IAD>
References:
Todo
Add support for RackspaceSDK ACL.
Todo
Add support for missing features like Cache-Control.
Parameters: Raises: CloudStorageError – If region name is not supported.
-
__iter__
()[source]¶ Get all containers associated to the driver.
for container in storage: print(container.name)
Yield: Iterator of all containers belonging to this driver. Yield type: Iterable[ Container
]Return type: Iterable
[Container
]
-
__len__
()[source]¶ The total number of containers in the driver.
Returns: Number of containers belonging to this driver. Return type: int
-
conn
¶ Rackspace connection.
Returns: Rackspace connection. Return type: rackspace.connection.Connection
-
object_store
¶ Rackspace object store proxy.
Returns: Proxy to Rackspace object store. Return type: rackspace.object_store.v1._proxy.Proxy
-
validate_credentials
()[source]¶ Validate driver credentials (key and secret).
Returns: None Return type: None Raises: CredentialsError – If driver authentication fails.
-
regions
¶ List of supported regions for this driver.
Returns: List of region strings. Return type: list[str]
-
create_container
(container_name, acl=None, meta_data=None)[source]¶ Create a new container.
For example:
container = storage.create_container('container-name') # <Container container-name driver-name>
Parameters: - container_name (str) – The container name to create.
- acl (str or None) –
(optional) Container canned Access Control List (ACL). If None, defaults to storage backend default.
- private
- public-read
- public-read-write
- authenticated-read
- bucket-owner-read
- bucket-owner-full-control
- aws-exec-read (Amazon S3)
- project-private (Google Cloud Storage)
- container-public-access (Microsoft Azure Storage)
- blob-public-access (Microsoft Azure Storage)
- meta_data (Dict[str, str] or None) – (optional) A map of metadata to store with the container.
Returns: The newly created or existing container.
Return type: Raises: CloudStorageError – If the container name contains invalid characters.
-
get_container
(container_name)[source]¶ Get a container by name.
For example:
container = storage.get_container('container-name') # <Container container-name driver-name>
Parameters: container_name (str) – The name of the container to retrieve. Returns: The container if it exists. Return type: Container
Raises: NotFoundError – If the container doesn’t exist.
-
patch_container
(container)[source]¶ Saves all changed attributes for the container.
Important
This class method is called by
Container.save()
.Parameters: container ( Container
) – A container instance.Returns: NoneType Return type: None Raises: NotFoundError – If the container doesn’t exist.
-
delete_container
(container)[source]¶ Delete this container.
Important
This class method is called by
Container.delete()
.Parameters: container (
Container
) – A container instance.Returns: NoneType
Return type: Raises: - IsNotEmptyError – If the container is not empty.
- NotFoundError – If the container doesn’t exist.
-
container_cdn_url
(container)[source]¶ The Content Delivery Network URL for this container.
Important
This class method is called by
Container.cdn_url
.Returns: The CDN URL for this container. Return type: str
-
enable_container_cdn
(container)[source]¶ (Optional) Enable Content Delivery Network (CDN) for the container.
Important
This class method is called by
Container.enable_cdn()
.Parameters: container ( Container
) – A container instance.Returns: True if successful or false if not supported. Return type: bool
-
disable_container_cdn
(container)[source]¶ (Optional) Disable Content Delivery Network (CDN) on the container.
Important
This class method is called by
Container.disable_cdn()
.Parameters: container ( Container
) – A container instance.Returns: True if successful or false if not supported. Return type: bool
-
upload_blob
(container, filename, blob_name=None, acl=None, meta_data=None, content_type=None, content_disposition=None, cache_control=None, chunk_size=1024, extra=None)[source]¶ Upload a filename or file like object to a container.
Important
This class method is called by
Container.upload_blob()
.Parameters: - container (
Container
) – The container to upload the blob to. - filename (file or str) – A file handle open for reading or the path to the file.
- acl (str or None) – (optional) Blob canned Access Control List (ACL).
- blob_name (str or None) – (optional) Override the blob’s name. If not set, will default to the filename from path or filename of iterator object.
- meta_data (Dict[str, str] or None) – (optional) A map of metadata to store with the blob.
- content_type (str or None) – (optional) A standard MIME type describing the format of the object data.
- content_disposition (str or None) – (optional) Specifies presentational information for the blob.
- cache_control (str or None) – (optional) Specify directives for caching mechanisms for the blob.
- chunk_size (int) – (optional) Optional chunk size for streaming a transfer.
- extra (Dict[str, str] or None) – (optional) Extra parameters for the request.
Returns: The uploaded blob.
Return type: - container (
-
get_blob
(container, blob_name)[source]¶ Get a blob object by name.
Important
This class method is called by
Blob.get_blob()
.Parameters: Returns: The blob object if it exists.
Return type: Raises: NotFoundError – If the blob object doesn’t exist.
-
get_blobs
(container)[source]¶ Get all blobs associated to the container.
Important
This class method is called by
Blob.__iter__()
.Parameters: container ( Container
) – A container instance.Returns: Iterable of all blobs belonging to this container. Return type: Iterable{Blob]
-
download_blob
(blob, destination)[source]¶ Download the contents of this blob into a file-like object or into a named file.
Important
This class method is called by
Blob.download()
.Parameters: Returns: NoneType
Return type: Raises: NotFoundError – If the blob object doesn’t exist.
-
patch_blob
(blob)[source]¶ Saves all changed attributes for this blob.
Important
This class method is called by
Blob.update()
.Returns: NoneType Return type: None Raises: NotFoundError – If the blob object doesn’t exist.
-
delete_blob
(blob)[source]¶ Deletes a blob from storage.
Important
This class method is called by
Blob.delete()
.Parameters: blob (Blob) – The blob to delete. Returns: NoneType Return type: None Raises: NotFoundError – If the blob object doesn’t exist.
-
blob_cdn_url
(blob)[source]¶ The Content Delivery Network URL for the blob.
Important
This class method is called by
Blob.cdn_url
.Parameters: blob (Blob) – The public blob object. Returns: The CDN URL for the blob. Return type: str
-
generate_container_upload_url
(container, blob_name, expires=3600, acl=None, meta_data=None, content_disposition=None, content_length=None, content_type=None, cache_control=None, extra=None)[source]¶ Generate a signature and policy for uploading objects to the container.
Important
This class method is called by
Container.generate_upload_url()
.Parameters: - container (
Container
) – A container to upload the blob object to. - blob_name (str or None) – The blob’s name, prefix, or ‘’ if a user is providing a file name. Note, Rackspace Cloud Files only supports prefixes.
- expires (int) – (optional) Expiration in seconds.
- acl (str or None) – (optional) Container canned Access Control List (ACL).
- meta_data (Dict[Any, Any] or None) – (optional) A map of metadata to store with the blob.
- content_disposition (str or None) – (optional) Specifies presentational information for the blob.
- content_type (str or None) – (optional) A standard MIME type describing the format of the object data.
- content_length (tuple[int, int] or None) – Specifies that uploaded files can only be between a certain size range in bytes.
- cache_control (str or None) – (optional) Specify directives for caching mechanisms for the blob.
- extra (Dict[Any, Any] or None) – (optional) Extra parameters for the request.
Returns: Dictionary with URL and form fields (includes signature or policy) or header fields.
Return type: Dict[Any, Any]
- container (
-
generate_blob_download_url
(blob, expires=3600, method='GET', content_disposition=None, extra=None)[source]¶ Generates a signed URL for this blob.
Important
This class method is called by
Blob.generate_download_url()
.Parameters: - blob (Blob) – The blob to download with a signed URL.
- expires (int) – (optional) Expiration in seconds.
- method (str) – (optional) HTTP request method. Defaults to GET.
- content_disposition (str or None) – (optional) Sets the Content-Disposition header of the response.
- extra (Dict[Any, Any] or None) – (optional) Extra parameters for the request.
Returns: Pre-signed URL for downloading a blob.
Return type:
-
get_account_temp_url_keys
()[source]¶ Return URL meta keys for signing temporary URLs.
For example:
storage.get_account_temp_url_keys() # ('<meta_temp_url_key>', '<meta_temp_url_key_2>')
References:
Returns: Tuple of both temporary URL keys. Return type: tuple
-
set_account_temp_url_keys
(temp_url_key=None, temp_url_key_2=None)[source]¶ Set URL meta keys for signing temporary URLs.
For example:
# Set key storage.set_account_temp_url_keys(temp_url_key_2='<my-new-key>') # ('<my-key>', '<my-new-key>') # Delete key storage.set_account_temp_url_keys(temp_url_key_2='') # ('<my-key>', None)
References:
Parameters: Returns: Tuple of both temporary URL keys.
Return type:
-