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)
-
__len__
()[source]¶ The total number of containers in the driver.
- Returns
Number of containers belonging to this driver.
- Return type
-
property
conn
¶ Rackspace connection.
- Returns
Rackspace connection.
- Return type
rackspace.connection.Connection
-
property
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
- Raises
CredentialsError – If driver authentication fails.
-
property
regions
¶ List of supported regions for this driver.
-
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.
(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
- 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
- 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
-
enable_container_cdn
(container)[source]¶ (Optional) Enable Content Delivery Network (CDN) for the container.
Important
This class method is called by
Container.enable_cdn()
.
-
disable_container_cdn
(container)[source]¶ (Optional) Disable Content Delivery Network (CDN) on the container.
Important
This class method is called by
Container.disable_cdn()
.
-
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
-
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
- 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
- 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
.
-
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]
-
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
-
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: