- 2.17.0 (latest)
- 2.16.0
- 2.15.0
- 2.14.0
- 2.13.0
- 2.12.0
- 2.11.0
- 2.10.0
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.1
- 2.1.0
- 2.0.0
- 1.44.0
- 1.43.0
- 1.42.3
- 1.41.1
- 1.40.0
- 1.39.0
- 1.38.0
- 1.37.1
- 1.36.2
- 1.35.1
- 1.34.0
- 1.33.0
- 1.32.0
- 1.31.2
- 1.30.0
- 1.29.0
- 1.28.1
- 1.27.0
- 1.26.0
- 1.25.0
- 1.24.1
- 1.23.0
- 1.22.0
- 1.21.0
- 1.20.0
- 1.19.0
- 1.18.0
- 1.17.0
Blob(
name,
bucket,
chunk_size=None,
encryption_key=None,
kms_key_name=None,
generation=None,
)
A wrapper around Cloud Storage's concept of an Object
.
Parameters | |
---|---|
Name | Description |
name |
str
The name of the blob. This corresponds to the unique path of the object in the bucket. If bytes, will be converted to a unicode object. Blob / object names can contain any sequence of valid unicode characters, of length 1-1024 bytes when UTF-8 encoded. |
bucket |
Bucket
The bucket to which this blob belongs. |
chunk_size |
int
(Optional) The size of a chunk of data whenever iterating (in bytes). This must be a multiple of 256 KB per the API specification. |
encryption_key |
bytes
(Optional) 32 byte encryption key for customer-supplied encryption. See https://cloud.google.com/storage/docs/encryption#customer-supplied. |
kms_key_name |
str
(Optional) Resource name of Cloud KMS key used to encrypt the blob's contents. |
generation |
long
(Optional) If present, selects a specific revision of this object. |
Properties
acl
Create our ACL on demand.
bucket
Bucket which contains the object.
Returns | |
---|---|
Type | Description |
Bucket | The object's bucket. |
cache_control
Scalar property getter.
chunk_size
Get the blob's default chunk size.
Returns | |
---|---|
Type | Description |
int or | The current blob's chunk size, if it is set. |
client
The client bound to this blob.
component_count
Number of underlying components that make up this object.
See https://cloud.google.com/storage/docs/json_api/v1/objects
Returns | |
---|---|
Type | Description |
int or | The component count (in case of a composed object) or None if the blob's resource has not been loaded from the server. This property will not be set on objects not created via compose . |
content_disposition
Scalar property getter.
content_encoding
Scalar property getter.
content_language
Scalar property getter.
content_type
Scalar property getter.
crc32c
Scalar property getter.
etag
Retrieve the ETag for the object.
See RFC 2616 (etags)
and API reference docs
.
Returns | |
---|---|
Type | Description |
str or | The blob etag or None if the blob's resource has not been loaded from the server. .. _RFC 2616 (etags): https://tools.ietf.org/html/rfc2616#section-3.11 |
event_based_hold
Scalar property getter.
generation
Retrieve the generation for the object.
See https://cloud.google.com/storage/docs/json_api/v1/objects
Returns | |
---|---|
Type | Description |
int or | The generation of the blob or None if the blob's resource has not been loaded from the server. |
Methods
Blob
Blob(
name,
bucket,
chunk_size=None,
encryption_key=None,
kms_key_name=None,
generation=None,
)
property name
Get the blob's name.
compose
compose(
sources,
client=None,
timeout=60,
if_generation_match=None,
if_metageneration_match=None,
)
Concatenate source blobs into this one.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
sources |
list of
Blobs whose contents will be composed into this blob. |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
timeout |
float or tuple
(Optional) The amount of time, in seconds, to wait for the server response. Can also be passed as a tuple (connect_timeout, read_timeout). See |
if_generation_match |
list of long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. The list must match |
if_metageneration_match |
list of long
(Optional) Make the operation conditional on whether the blob's current metageneration matches the given value. The list must match |
create_resumable_upload_session
create_resumable_upload_session(
content_type=None, size=None, origin=None, client=None, timeout=60
)
Create a resumable upload session.
Resumable upload sessions allow you to start an upload session from
one client and complete the session in another. This method is called
by the initiator to set the metadata and limits. The initiator then
passes the session URL to the client that will upload the binary data.
The client performs a PUT request on the session URL to complete the
upload. This process allows untrusted clients to upload to an
access-controlled bucket. For more details, see the
documentation on signed URLs
_.
.. _documentation on signed URLs: https://cloud.google.com/storage/ docs/access-control/signed-urls#signing-resumable
The content type of the upload will be determined in order of precedence:
- The value passed in to this method (if not :data:
None
) - The value stored on the current blob
- The default value ('application/octet-stream')
See the object versioning
<https://cloud.google.com/storage/docs/object-versioning>
and
lifecycle <https://cloud.google.com/storage/docs/lifecycle>
API documents for details.
If encryption_key
is set, the blob will be encrypted with
a customer-supplied
_ encryption key.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
size |
int
(Optional) The maximum number of bytes that can be uploaded using this session. If the size is not known when creating the session, this should be left blank. |
content_type |
str
(Optional) Type of content being uploaded. |
origin |
str
(Optional) If set, the upload can only be completed by a user-agent that uploads from the given origin. This can be useful when passing the session to a web client. |
client |
Client
(Optional) The client to use. If not passed, falls back to the |
timeout |
float or tuple
(Optional) The number of seconds the transport should wait for the server response. Depending on the retry strategy, a request may be repeated several times using the same timeout each time. Can also be passed as a tuple (connect_timeout, read_timeout). See |
Exceptions | |
---|---|
Type | Description |
GoogleCloudError | if the session creation response returns an error status. |
Returns | |
---|---|
Type | Description |
str | The resumable upload session URL. The upload can be completed by making an HTTP PUT request with the file's contents. |
delete
delete(
client=None,
timeout=60,
if_generation_match=None,
if_generation_not_match=None,
if_metageneration_match=None,
if_metageneration_not_match=None,
)
Deletes a blob from Cloud Storage.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
timeout |
float or tuple
(Optional) The amount of time, in seconds, to wait for the server response. Can also be passed as a tuple (connect_timeout, read_timeout). See |
if_generation_match |
long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. |
if_generation_not_match |
long
(Optional) Make the operation conditional on whether the blob's current generation does not match the given value. If no live blob exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the blob. |
if_metageneration_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration matches the given value. |
if_metageneration_not_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration does not match the given value. |
Exceptions | |
---|---|
Type | Description |
NotFound | (propagated from delete_blob). |
download_as_string
download_as_string(
client=None,
start=None,
end=None,
raw_download=False,
if_generation_match=None,
if_generation_not_match=None,
if_metageneration_match=None,
if_metageneration_not_match=None,
timeout=60,
)
Download the contents of this blob as a bytes object.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
start |
int
(Optional) The first byte in a range to be downloaded. |
end |
int
(Optional) The last byte in a range to be downloaded. |
raw_download |
bool
(Optional) If true, download the object without any expansion. |
if_generation_match |
long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. |
if_generation_not_match |
long
(Optional) Make the operation conditional on whether the blob's current generation does not match the given value. If no live blob exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the blob. |
if_metageneration_not_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration does not match the given value. |
timeout |
float or tuple
(Optional) The number of seconds the transport should wait for the server response. Depending on the retry strategy, a request may be repeated several times using the same timeout each time. Can also be passed as a tuple (connect_timeout, read_timeout). See |
Exceptions | |
---|---|
Type | Description |
NotFound |
Returns | |
---|---|
Type | Description |
bytes | The data stored in this blob. |
download_to_file
download_to_file(
file_obj,
client=None,
start=None,
end=None,
raw_download=False,
if_generation_match=None,
if_generation_not_match=None,
if_metageneration_match=None,
if_metageneration_not_match=None,
timeout=60,
)
Download the contents of this blob into a file-like object.
.. literalinclude:: snippets.py :start-after: [START download_to_file] :end-before: [END download_to_file] :dedent: 4
The encryption_key
should be a str or bytes with a length of at
least 32.
If the chunk_size
of a current blob is None
, will download data
in single download request otherwise it will download the chunk_size
of data in each request.
For more fine-grained control over the download process, check out
google-resumable-media
_. For example, this library allows
downloading parts of a blob rather than the whole thing.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
file_obj |
file
A file handle to which to write the blob's data. |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
start |
int
(Optional) The first byte in a range to be downloaded. |
end |
int
(Optional) The last byte in a range to be downloaded. |
raw_download |
bool
(Optional) If true, download the object without any expansion. |
if_generation_match |
long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. |
if_generation_not_match |
long
(Optional) Make the operation conditional on whether the blob's current generation does not match the given value. If no live blob exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the blob. |
if_metageneration_not_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration does not match the given value. |
timeout |
float or tuple
(Optional) The number of seconds the transport should wait for the server response. Depending on the retry strategy, a request may be repeated several times using the same timeout each time. Can also be passed as a tuple (connect_timeout, read_timeout). See |
Exceptions | |
---|---|
Type | Description |
NotFound |
download_to_filename
download_to_filename(
filename,
client=None,
start=None,
end=None,
raw_download=False,
if_generation_match=None,
if_generation_not_match=None,
if_metageneration_match=None,
if_metageneration_not_match=None,
timeout=60,
)
Download the contents of this blob into a named file.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
filename |
str
A filename to be passed to |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
start |
int
(Optional) The first byte in a range to be downloaded. |
end |
int
(Optional) The last byte in a range to be downloaded. |
raw_download |
bool
(Optional) If true, download the object without any expansion. |
if_generation_match |
long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. |
if_generation_not_match |
long
(Optional) Make the operation conditional on whether the blob's current generation does not match the given value. If no live blob exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the blob. |
if_metageneration_not_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration does not match the given value. |
timeout |
float or tuple
(Optional) The number of seconds the transport should wait for the server response. Depending on the retry strategy, a request may be repeated several times using the same timeout each time. Can also be passed as a tuple (connect_timeout, read_timeout). See |
Exceptions | |
---|---|
Type | Description |
NotFound |
exists
exists(
client=None,
timeout=60,
if_generation_match=None,
if_generation_not_match=None,
if_metageneration_match=None,
if_metageneration_not_match=None,
)
Determines whether or not this blob exists.
If user_project
is set on the bucket, bills the API request
to that project.
Parameters | |
---|---|
Name | Description |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
timeout |
float or tuple
(Optional) The amount of time, in seconds, to wait for the server response. Can also be passed as a tuple (connect_timeout, read_timeout). See |
if_generation_match |
long
(Optional) Make the operation conditional on whether the blob's current generation matches the given value. Setting to 0 makes the operation succeed only if there are no live versions of the blob. |
if_generation_not_match |
long
(Optional) Make the operation conditional on whether the blob's current generation does not match the given value. If no live blob exists, the precondition fails. Setting to 0 makes the operation succeed only if there is a live version of the blob. |
if_metageneration_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration matches the given value. |
if_metageneration_not_match |
long
(Optional) Make the operation conditional on whether the blob's current metageneration does not match the given value. |
Returns | |
---|---|
Type | Description |
bool | True if the blob exists in Cloud Storage. |
from_string
from_string(uri, client=None)
Get a constructor for blob object by URI.
Parameters | |
---|---|
Name | Description |
uri |
str
The blob uri pass to get blob object. |
client |
Client or
(Optional) The client to use. |
Returns | |
---|---|
Type | Description |
Blob | The blob object created. .. rubric:: Example Get a constructor for blob object by URI.. >>> from google.cloud import storage >>> from google.cloud.storage.blob import Blob >>> client = storage.Client() >>> blob = Blob.from_string("gs://bucket/object") |
generate_signed_url
generate_signed_url(
expiration=None,
api_access_endpoint="https://storage.googleapis.com",
method="GET",
content_md5=None,
content_type=None,
response_disposition=None,
response_type=None,
generation=None,
headers=None,
query_parameters=None,
client=None,
credentials=None,
version=None,
service_account_email=None,
access_token=None,
virtual_hosted_style=False,
bucket_bound_hostname=None,
scheme="http",
)
Generates a signed URL for this blob.
If you have a blob that you want to allow access to for a set amount of time, you can use this method to generate a URL that is only valid within a certain time period.
If bucket_bound_hostname
is set as an argument of api_access_endpoint
,
https
works only if using a CDN
.
.. rubric:: Example
Generates a signed URL for this blob using bucket_bound_hostname and scheme.
from google.cloud import storage client = storage.Client() bucket = client.get_bucket('my-bucket-name') blob = client.get_blob('my-blob-name') url = blob.generate_signed_url(expiration='url-expiration-time', bucket_bound_hostname='mydomain.tld', version='v4') url = blob.generate_signed_url(expiration='url-expiration-time', bucket_bound_hostname='mydomain.tld', version='v4',scheme='https') # If using
CDN
This is particularly useful if you don't want publicly accessible blobs, but don't want to require users to explicitly log in.
Parameters | |
---|---|
Name | Description |
expiration |
Union[Integer, datetime.datetime, datetime.timedelta]
Point in time when the signed URL should expire. |
api_access_endpoint |
str
(Optional) URI base. |
method |
str
The HTTP verb that will be used when requesting the URL. |
content_md5 |
str
(Optional) The MD5 hash of the object referenced by |
content_type |
str
(Optional) The content type of the object referenced by |
response_disposition |
str
(Optional) Content disposition of responses to requests for the signed URL. For example, to enable the signed URL to initiate a file of |
response_type |
str
(Optional) Content type of responses to requests for the signed URL. Ignored if content_type is set on object/blob metadata. |
generation |
str
(Optional) A value that indicates which generation of the resource to fetch. |
headers |
dict
(Optional) Additional HTTP headers to be included as part of the signed URLs. See: https://cloud.google.com/storage/docs/xml-api/reference-headers Requests using the signed URL must pass the specified header (name and value) with each request for the URL. |
query_parameters |
dict
(Optional) Additional query parameters to be included as part of the signed URLs. See: https://cloud.google.com/storage/docs/xml-api/reference-headers#query |
client |
Client or
(Optional) The client to use. If not passed, falls back to the |
credentials |
The authorization credentials to attach to requests. These credentials identify this application to the service. If none are specified, the client will attempt to ascertain the credentials from the environment. |
version |
str
(Optional) The version of signed credential to create. Must be one of 'v2' 'v4'. |
service_account_email |
str
(Optional) E-mail address of the service account. |
access_token |
str
(Optional) Access token for a service account. |
virtual_hosted_style |
bool
(Optional) If true, then construct the URL relative the bucket's virtual hostname, e.g., '
|
bucket_bound_hostname |
str
(Optional) If passed, then construct the URL relative to the bucket-bound hostname. Value can be a bare or with scheme, e.g., 'example.com' or 'http://example.com'. See: https://cloud.google.com/storage/docs/request-endpoints#cname |
scheme |
str
(Optional) If |
Exceptions | |
---|---|
Type | Description |
`ValueError | when version is invalid. |
`TypeError | when expiration is not a valid type. |
`AttributeError | if credentials is not an instance of google.auth.credentials.Signing . |
Returns | |
---|---|
Type | Description |
str | A signed URL you can use to access the resource until expiration. |