Google Cloud Storage v1 API - Class StorageClientImpl (4.4.0)

public sealed class StorageClientImpl : StorageClient, IDisposable

Reference documentation and code samples for the Google Cloud Storage v1 API class StorageClientImpl.

Wrapper around StorageService to provide simpler operations.

Inheritance

object > StorageClient > StorageClientImpl

Implements

IDisposable

Namespace

GoogleGoogle.CloudGoogle.Cloud.StorageV1

Assembly

Google.Cloud.Storage.V1.dll

Remarks

This is the "default" implementation of StorageClient. Most client code should refer to StorageClient, creating instances with Create(GoogleCredential, EncryptionKey) and CreateAsync(GoogleCredential, EncryptionKey). The constructor of this class is public for the sake of constructor-based dependency injection.

Constructors

StorageClientImpl(StorageService, EncryptionKey)

public StorageClientImpl(StorageService service, EncryptionKey encryptionKey = null)

Constructs a new client wrapping the given StorageService.

Parameters
NameDescription
serviceStorageService

The service to wrap. Must not be null.

encryptionKeyEncryptionKey

Optional EncryptionKey to use for object-based operations by default. May be null, in which case None will be used.

Properties

ApplicationName

public static string ApplicationName { get; set; }

The default application name used when creating a StorageService. Defaults to "google-cloud-dotnet"; must not be null.

Property Value
TypeDescription
string
Remarks

Most applications will never want to set this, which is why it's in this class rather than StorageClient.

EncryptionKey

public override EncryptionKey EncryptionKey { get; }

The customer-supplied encryption key used by default for all relevant object-based operations. This can be overridden in call-specific options. This will never return null in the built-in implementation; if no encryption key is specified, None is returned.

Property Value
TypeDescription
EncryptionKey
Overrides

Service

public override StorageService Service { get; }

The underlying storage service object used by this client.

Property Value
TypeDescription
StorageService
Overrides Remarks

The StorageClient class only provides convenience operations built on top of an existing service object. Any more complex operations which are not supported by this wrapper may wish to use the same service object as the wrapper, in order to take advantage of its configuration (for authentication, application naming etc).

Methods

ClearBucketLabels(string, ModifyBucketLabelsOptions)

public override IDictionary<string, string> ClearBucketLabels(string bucket, ModifyBucketLabelsOptions options = null)

Clears all labels on a bucket.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsModifyBucketLabelsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
IDictionarystringstring

A dictionary with the labels on the bucket before they were cleared.

Overrides

ClearBucketLabelsAsync(string, ModifyBucketLabelsOptions, CancellationToken)

public override Task<IDictionary<string, string>> ClearBucketLabelsAsync(string bucket, ModifyBucketLabelsOptions options = null, CancellationToken cancellationToken = default)

Clears all labels on a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsModifyBucketLabelsOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskIDictionarystringstring

A dictionary with the labels on the bucket before they were cleared.

Overrides

CopyObject(string, string, string, string, CopyObjectOptions)

public override Object CopyObject(string sourceBucket, string sourceObjectName, string destinationBucket, string destinationObjectName, CopyObjectOptions options = null)

Creates a copy of an object synchronously, potentially to a different bucket. This method uses the rewriteObject underlying API operation for more flexibility and reliability.

Parameters
NameDescription
sourceBucketstring

The name of the bucket containing the object to copy. Must not be null.

sourceObjectNamestring

The name of the object to copy within the bucket. Must not be null.

destinationBucketstring

The name of the bucket to copy the object to. Must not be null.

destinationObjectNamestring

The name of the object within the destination bucket. Must not be null.

optionsCopyObjectOptions

Additional options for the copy operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Object

The Object representation of the new storage object resulting from the copy.

Overrides

CopyObjectAsync(string, string, string, string, CopyObjectOptions, CancellationToken)

public override Task<Object> CopyObjectAsync(string sourceBucket, string sourceObjectName, string destinationBucket, string destinationObjectName, CopyObjectOptions options = null, CancellationToken cancellationToken = default)

Creates a copy of an object synchronously, potentially to a different bucket. This method uses the rewriteObject underlying API operation for more flexibility and reliability.

Parameters
NameDescription
sourceBucketstring

The name of the bucket containing the object to copy. Must not be null.

sourceObjectNamestring

The name of the object to copy within the bucket. Must not be null.

destinationBucketstring

The name of the bucket to copy the object to. Must not be null.

destinationObjectNamestring

The name of the object within the destination bucket. Must not be null.

optionsCopyObjectOptions

Additional options for the copy operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the new storage object resulting from the copy.

Overrides Remarks

The fact that destinationBucket and destinationObjectName are optional is a mistake. The default value of null for these parameters is invalid for this method, meaning that any call which doesn't specify the parameters explicitly will fail. Making these parameters required would be a compile-time breaking change; this will be implemented in the next major version of this library.

CreateBucket(string, Bucket, CreateBucketOptions)

public override Bucket CreateBucket(string projectId, Bucket bucket, CreateBucketOptions options = null)

Creates a storage bucket synchronously.

Parameters
NameDescription
projectIdstring

The ID of the project to create the buckets in. Must not be null.

bucketBucket

The resource representation of the bucket to create. Must not be null, and must have a name.

optionsCreateBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Bucket

The resource representation of the newly-created bucket.

Overrides

CreateBucket(string, string, CreateBucketOptions)

public override Bucket CreateBucket(string projectId, string bucket, CreateBucketOptions options = null)

Creates a storage bucket synchronously.

Parameters
NameDescription
projectIdstring

The ID of the project to create the buckets in. Must not be null.

bucketstring

The name of the bucket to create. Must not be null.

optionsCreateBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Bucket

The resource representation of the newly-created bucket.

Overrides

CreateBucketAsync(string, Bucket, CreateBucketOptions, CancellationToken)

public override Task<Bucket> CreateBucketAsync(string projectId, Bucket bucket, CreateBucketOptions options = null, CancellationToken cancellationToken = default)

Creates a storage bucket asynchronously.

Parameters
NameDescription
projectIdstring

The ID of the project to create the buckets in. Must not be null.

bucketBucket

The resource representation of the bucket to create. Must not be null, and must have a name.

optionsCreateBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskBucket

A task representing the asynchronous operation, with a result returning the resource representation of the newly-created bucket.

Overrides

CreateBucketAsync(string, string, CreateBucketOptions, CancellationToken)

public override Task<Bucket> CreateBucketAsync(string projectId, string bucket, CreateBucketOptions options = null, CancellationToken cancellationToken = default)

Creates a storage bucket asynchronously.

Parameters
NameDescription
projectIdstring

The ID of the project to create the buckets in. Must not be null.

bucketstring

The name of the bucket to create. Must not be null.

optionsCreateBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskBucket

A task representing the asynchronous operation, with a result returning the resource representation of the newly-created bucket.

Overrides

CreateHmacKey(string, string, CreateHmacKeyOptions)

public override HmacKey CreateHmacKey(string projectId, string serviceAccountEmail, CreateHmacKeyOptions options = null)

Synchronously creates a new HMAC key associated with a service account.

Parameters
NameDescription
projectIdstring

The project ID in which to create the HMAC key. Must not be null.

serviceAccountEmailstring

The service account to associate with the HMAC key. Must not be null.

optionsCreateHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
HmacKey

The new HMAC key, including the secret information in Secret. This secret is only ever returned when creating a key.

Overrides

CreateHmacKeyAsync(string, string, CreateHmacKeyOptions, CancellationToken)

public override Task<HmacKey> CreateHmacKeyAsync(string projectId, string serviceAccountEmail, CreateHmacKeyOptions options = null, CancellationToken cancellationToken = default)

Asynchronously creates a new HMAC key associated with a service account.

Parameters
NameDescription
projectIdstring

The project ID in which to create the HMAC key. Must not be null.

serviceAccountEmailstring

The service account to associate with the HMAC key. Must not be null.

optionsCreateHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskHmacKey

A task representing the asynchronous operation, with a result returning the the new HMAC key, including the secret information in Secret. This secret is only ever returned when creating a key.

Overrides

CreateNotification(string, Notification, CreateNotificationOptions)

public override Notification CreateNotification(string bucket, Notification notification, CreateNotificationOptions options = null)

Creates a notification configuration.

Parameters
NameDescription
bucketstring

The bucket for which to create the notification configuration. Must not be null.

notificationNotification

The notification configuration to create. Must not be null.

optionsCreateNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
Notification

The Notification representation of the newly-created notification configuration.

Overrides

CreateNotificationAsync(string, Notification, CreateNotificationOptions, CancellationToken)

public override Task<Notification> CreateNotificationAsync(string bucket, Notification notification, CreateNotificationOptions options = null, CancellationToken cancellationToken = default)

Asynchronously creates a notification configuration.

Parameters
NameDescription
bucketstring

The bucket for which to create the notification configuration. Must not be null.

notificationNotification

The notification configuration to create. Must not be null.

optionsCreateNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskNotification

A task representing the asynchronous operation, with a result returning the Notification representation of the newly-created notification configuration.

Overrides

CreateObjectUploader(Object, Stream, UploadObjectOptions)

public override ObjectsResource.InsertMediaUpload CreateObjectUploader(Object destination, Stream source, UploadObjectOptions options = null)

Creates an instance which is capable of starting a resumable upload for an object.

Parameters
NameDescription
destinationObject

Object to create or update. Must not be null, and must have the name, bucket and content type populated.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
ObjectsResourceInsertMediaUpload

The ObjectsResource.InsertMediaUpload which can be used to upload the object.

Overrides See Also

CreateObjectUploader(string, string, string, Stream, UploadObjectOptions)

public override ObjectsResource.InsertMediaUpload CreateObjectUploader(string bucket, string objectName, string contentType, Stream source, UploadObjectOptions options = null)

Creates an instance which is capable of starting a resumable upload for an object.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

contentTypestring

The content type of the object. This should be a MIME type such as "text/html" or "application/octet-stream". May be null.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
ObjectsResourceInsertMediaUpload

The ObjectsResource.InsertMediaUpload which can be used to upload the object.

Overrides See Also

DeleteBucket(Bucket, DeleteBucketOptions)

public override void DeleteBucket(Bucket bucket, DeleteBucketOptions options = null)

Deletes a bucket synchronously.

Parameters
NameDescription
bucketBucket

Bucket to delete. Must not be null, and must have the name populated.

optionsDeleteBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Overrides

DeleteBucket(string, DeleteBucketOptions)

public override void DeleteBucket(string bucket, DeleteBucketOptions options = null)

Deletes a bucket synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket to delete. Must not be null.

optionsDeleteBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Overrides

DeleteBucketAsync(Bucket, DeleteBucketOptions, CancellationToken)

public override Task DeleteBucketAsync(Bucket bucket, DeleteBucketOptions options = null, CancellationToken cancellationToken = default)

Deletes bucket asynchronously.

Parameters
NameDescription
bucketBucket

Bucket to delete. Must not be null, and must have the name populated.

optionsDeleteBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides

DeleteBucketAsync(string, DeleteBucketOptions, CancellationToken)

public override Task DeleteBucketAsync(string bucket, DeleteBucketOptions options = null, CancellationToken cancellationToken = default)

Deletes a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket to delete. Must not be null.

optionsDeleteBucketOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides

DeleteHmacKey(string, string, DeleteHmacKeyOptions)

public override void DeleteHmacKey(string projectId, string accessId, DeleteHmacKeyOptions options = null)

Synchronously deletes an HMAC key, which must already have been deactivated.

Parameters
NameDescription
projectIdstring

The ID of the project containing the HMAC key to delete.

accessIdstring

The ID of the HMAC key to delete. Must not be null.

optionsDeleteHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Overrides

DeleteHmacKeyAsync(string, string, DeleteHmacKeyOptions, CancellationToken)

public override Task DeleteHmacKeyAsync(string projectId, string accessId, DeleteHmacKeyOptions options = null, CancellationToken cancellationToken = default)

Asynchronously deletes an HMAC key, which must already have been deactivated.

Parameters
NameDescription
projectIdstring

The ID of the project containing the HMAC key to delete.

accessIdstring

The ID of the HMAC key to delete. Must not be null.

optionsDeleteHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides

DeleteNotification(string, string, DeleteNotificationOptions)

public override void DeleteNotification(string bucket, string notificationId, DeleteNotificationOptions options = null)

Deletes a notification configuration.

Parameters
NameDescription
bucketstring

The bucket associated with the notification configuration. Must not be null.

notificationIdstring

ID of the notification configuration to delete. Must not be null.

optionsDeleteNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

Overrides

DeleteNotificationAsync(string, string, DeleteNotificationOptions, CancellationToken)

public override Task DeleteNotificationAsync(string bucket, string notificationId, DeleteNotificationOptions options = null, CancellationToken cancellationToken = default)

Asynchronously deletes a notification configuration.

Parameters
NameDescription
bucketstring

The bucket associated with the notification configuration. Must not be null.

notificationIdstring

ID of the notification configuration to delete. Must not be null.

optionsDeleteNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides

DeleteObject(Object, DeleteObjectOptions)

public override void DeleteObject(Object obj, DeleteObjectOptions options = null)

Deletes a version of the specified object synchronously.

Parameters
NameDescription
objObject

Object to delete. Must not be null, and must have the name and bucket populated.

optionsDeleteObjectOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Overrides Remarks

By default this will delete the latest version of the object, but this can be controlled using Generation. Note that any generation information contained within obj is ignored; the generation to delete is only controlled via options. For buckets that support multiple versions, implicitly deleting the latest version only archives it so the object is still available and can be listed by specifying Versions. If the version is explicitly specified, the object is permanently deleted.

If the bucket containing the object supports versioning, after this operation completes successfully there may still be another version of the same object. In buckets which do not support versioning, this operation will permanently delete the object.

If the request attempts to delete an object that does not exist or a specific version that does not exist, this counts as a failure with an HTTP status code of 404.

DeleteObject(string, string, DeleteObjectOptions)

public override void DeleteObject(string bucket, string objectName, DeleteObjectOptions options = null)

Deletes a version of the specified object synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

optionsDeleteObjectOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Overrides Remarks

By default this will delete the latest version of the object, but this can be controlled using Generation. For buckets that support multiple versions, implicitly deleting the latest version only archives it so the object is still available and can be listed by specifying Versions. If the version is explicitly specified, the object is permanently deleted.

If the bucket containing the object supports versioning, after this operation completes successfully there may still be another version of the same object. In buckets which do not support versioning, this operation will permanently delete the object.

If the request attempts to delete an object that does not exist or a specific version that does not exist, this counts as a failure with an HTTP status code of 404.

DeleteObjectAsync(Object, DeleteObjectOptions, CancellationToken)

public override Task DeleteObjectAsync(Object obj, DeleteObjectOptions options = null, CancellationToken cancellationToken = default)

Deletes a version of the specified object asynchronously.

Parameters
NameDescription
objObject

Object to delete. Must not be null, and must have the name and bucket populated.

optionsDeleteObjectOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides Remarks

By default this will delete the latest version of the object, but this can be controlled using Generation. Note that any generation information contained within obj is ignored; the generation to delete is only controlled via options. For buckets that support multiple versions, implicitly deleting the latest version only archives it so the object is still available and can be listed by specifying Versions. If the version is explicitly specified, the object is permanently deleted.

If the bucket containing the object supports versioning, after this operation completes successfully there may still be another version of the same object. In buckets which do not support versioning, this operation will permanently delete the object.

If the request attempts to delete an object that does not exist or a specific version that does not exist, this counts as a failure with an HTTP status code of 404.

DeleteObjectAsync(string, string, DeleteObjectOptions, CancellationToken)

public override Task DeleteObjectAsync(string bucket, string objectName, DeleteObjectOptions options = null, CancellationToken cancellationToken = default)

Deletes a version of the specified object asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

optionsDeleteObjectOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides Remarks

By default this will delete the latest version of the object, but this can be controlled using Generation. For buckets that support multiple versions, implicitly deleting the latest version only archives it so the object is still available and can be listed by specifying Versions. If the version is explicitly specified, the object is permanently deleted.

If the bucket containing the object supports versioning, after this operation completes successfully there may still be another version of the same object. In buckets which do not support versioning, this operation will permanently delete the object.

If the request attempts to delete an object that does not exist or a specific version that does not exist, this counts as a failure with an HTTP status code of 404.

Dispose()

public override void Dispose()

Dispose of this instance. See the StorageClient remarks on when this should be called.

Overrides

DownloadObject(Object, Stream, DownloadObjectOptions, IProgress<IDownloadProgress>)

public override Object DownloadObject(Object source, Stream destination, DownloadObjectOptions options = null, IProgress<IDownloadProgress> progress = null)

Downloads the data for an object from storage synchronously, into a specified stream.

Parameters
NameDescription
sourceObject

Source object to download the data from. Must not be null.

destinationStream

The stream to write the data into. Must not be null.

optionsDownloadObjectOptions

Additional options for the download. May be null, in which case appropriate defaults will be used.

progressIProgressIDownloadProgress

Progress reporter for the download. May be null.

Returns
TypeDescription
Object

An Object representation of the metadata for the object that has been downloaded into the stream. This metadata is not the complete metadata for the object; it's just the information provided in headers while downloading. Additionally, the CRC32C hash is only the hash of the data downloaded; if the options specify a range which does not encompass the whole object, this will not be the same as the CRC32C hash of the complete object.

Overrides Remarks

The generation number within source is ignored by this method. To download a specific generation, use Generation.

DownloadObject(string, string, Stream, DownloadObjectOptions, IProgress<IDownloadProgress>)

public override Object DownloadObject(string bucket, string objectName, Stream destination, DownloadObjectOptions options = null, IProgress<IDownloadProgress> progress = null)

Downloads the data for an object from storage synchronously, into a specified stream.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

destinationStream

The stream to write the data into. Must not be null.

optionsDownloadObjectOptions

Additional options for the download. May be null, in which case appropriate defaults will be used.

progressIProgressIDownloadProgress

Progress reporter for the download. May be null.

Returns
TypeDescription
Object

An Object representation of the metadata for the object that has been downloaded into the stream. This metadata is not the complete metadata for the object; it's just the information provided in headers while downloading. Additionally, the CRC32C hash is only the hash of the data downloaded; if the options specify a range which does not encompass the whole object, this will not be the same as the CRC32C hash of the complete object.

Overrides

DownloadObjectAsync(Object, Stream, DownloadObjectOptions, CancellationToken, IProgress<IDownloadProgress>)

public override Task<Object> DownloadObjectAsync(Object source, Stream destination, DownloadObjectOptions options = null, CancellationToken cancellationToken = default, IProgress<IDownloadProgress> progress = null)

Downloads the data for an object from storage asynchronously, into a specified stream.

Parameters
NameDescription
sourceObject

Source object to download the data from. Must not be null.

destinationStream

The stream to write the data into. Must not be null.

optionsDownloadObjectOptions

Additional options for the download. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

progressIProgressIDownloadProgress

Progress reporter for the download. May be null.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation. The result of the task is an Object representation of the metadata for the object that has been downloaded into the stream. This metadata is not the complete metadata for the object; it's just the information provided in headers while downloading. Additionally, the CRC32C hash is only the hash of the data downloaded; if the options specify a range which does not encompass the whole object, this will not be the same as the CRC32C hash of the complete object.

Overrides Remarks

The generation number within source is ignored by this method. To download a specific generation, use Generation.

DownloadObjectAsync(string, string, Stream, DownloadObjectOptions, CancellationToken, IProgress<IDownloadProgress>)

public override Task<Object> DownloadObjectAsync(string bucket, string objectName, Stream destination, DownloadObjectOptions options = null, CancellationToken cancellationToken = default, IProgress<IDownloadProgress> progress = null)

Downloads the data for an object from storage asynchronously, into a specified stream.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

destinationStream

The stream to write the data into. Must not be null.

optionsDownloadObjectOptions

Additional options for the download. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

progressIProgressIDownloadProgress

Progress reporter for the download. May be null.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation. The result of the task is an Object representation of the metadata for the object that has been downloaded into the stream. This metadata is not the complete metadata for the object; it's just the information provided in headers while downloading. Additionally, the CRC32C hash is only the hash of the data downloaded; if the options specify a range which does not encompass the whole object, this will not be the same as the CRC32C hash of the complete object.

Overrides

GetBucket(string, GetBucketOptions)

public override Bucket GetBucket(string bucket, GetBucketOptions options = null)

Fetches the information about a bucket synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsGetBucketOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Bucket

The Bucket representation of the storage bucket.

Overrides

GetBucketAsync(string, GetBucketOptions, CancellationToken)

public override Task<Bucket> GetBucketAsync(string bucket, GetBucketOptions options = null, CancellationToken cancellationToken = default)

Fetches the information about a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsGetBucketOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskBucket

A task representing the asynchronous operation, with a result returning the Bucket representation of the storage bucket.

Overrides

GetBucketIamPolicy(string, GetBucketIamPolicyOptions)

public override Policy GetBucketIamPolicy(string bucket, GetBucketIamPolicyOptions options = null)

Fetches the IAM policy information about a bucket synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsGetBucketIamPolicyOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Policy

The Policy representation of the storage bucket IAM policy.

Overrides

GetBucketIamPolicyAsync(string, GetBucketIamPolicyOptions, CancellationToken)

public override Task<Policy> GetBucketIamPolicyAsync(string bucket, GetBucketIamPolicyOptions options = null, CancellationToken cancellationToken = default)

Fetches the IAM policy information about a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

optionsGetBucketIamPolicyOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskPolicy

A task representing the asynchronous operation, with a result returning the Policy representation of the storage bucket IAM policy.

Overrides

GetHmacKey(string, string, GetHmacKeyOptions)

public override HmacKeyMetadata GetHmacKey(string projectId, string accessId, GetHmacKeyOptions options = null)

Synchronously fetches metadata for the specified HMAC key.

Parameters
NameDescription
projectIdstring

The project containing the HMAC key. Must not be null.

accessIdstring

The ID of the HMAC key. Must not be null.

optionsGetHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
HmacKeyMetadata

The HMAC key metadata

Overrides

GetHmacKeyAsync(string, string, GetHmacKeyOptions, CancellationToken)

public override Task<HmacKeyMetadata> GetHmacKeyAsync(string projectId, string accessId, GetHmacKeyOptions options = null, CancellationToken cancellationToken = default)

Asynchronously fetches metadata for the specified HMAC key.

Parameters
NameDescription
projectIdstring

The project containing the HMAC key. Must not be null.

accessIdstring

The ID of the HMAC key. Must not be null.

optionsGetHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskHmacKeyMetadata

A task representing the asynchronous operation, with a result returning the HMAC key metadata.

Overrides

GetNotification(string, string, GetNotificationOptions)

public override Notification GetNotification(string bucket, string notificationId, GetNotificationOptions options = null)

Fetches a notification configuration.

Parameters
NameDescription
bucketstring

The bucket associated with the notification configuration. Must not be null.

notificationIdstring

ID of the notification configuration to fetch. Must not be null.

optionsGetNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
Notification

The Notification representation of the notification configuration.

Overrides

GetNotificationAsync(string, string, GetNotificationOptions, CancellationToken)

public override Task<Notification> GetNotificationAsync(string bucket, string notificationId, GetNotificationOptions options = null, CancellationToken cancellationToken = default)

Asynchronously fetches a notification configuration.

Parameters
NameDescription
bucketstring

The bucket associated with the notification configuration. Must not be null.

notificationIdstring

ID of the notification configuration to fetch. Must not be null.

optionsGetNotificationOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskNotification

A task representing the asynchronous operation, with a result returning the Notification representation of the notification configuration.

Overrides

GetObject(string, string, GetObjectOptions)

public override Object GetObject(string bucket, string objectName, GetObjectOptions options = null)

Fetches the information about an object synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

optionsGetObjectOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Object

The Object representation of the storage object.

Overrides Remarks

This does not retrieve the content of the object itself. Use DownloadObject(string, string, Stream, DownloadObjectOptions, IProgress<IDownloadProgress>) to download the content.

GetObjectAsync(string, string, GetObjectOptions, CancellationToken)

public override Task<Object> GetObjectAsync(string bucket, string objectName, GetObjectOptions options = null, CancellationToken cancellationToken = default)

Fetches the information about an object asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

optionsGetObjectOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the storage object.

Overrides Remarks

This does not retrieve the content of the object itself. Use DownloadObjectAsync(string, string, Stream, DownloadObjectOptions, CancellationToken, IProgress<IDownloadProgress>) to download the content.

GetStorageServiceAccountEmail(string, GetStorageServiceAccountEmailOptions)

public override string GetStorageServiceAccountEmail(string projectId, GetStorageServiceAccountEmailOptions options = null)

Retrieves the service account email address that Google Cloud Storage uses for operations on other services such as Google Cloud Pub/Sub.

Parameters
NameDescription
projectIdstring

ID of the project to retrieve the service account for. Must not be null.

optionsGetStorageServiceAccountEmailOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
string

The email address of the service account.

Overrides

GetStorageServiceAccountEmailAsync(string, GetStorageServiceAccountEmailOptions, CancellationToken)

public override Task<string> GetStorageServiceAccountEmailAsync(string projectId, GetStorageServiceAccountEmailOptions options = null, CancellationToken cancellationToken = default)

Asynchronously retrieves the service account email address that Google Cloud Storage uses for operations on other services such as Google Cloud Pub/Sub.

Parameters
NameDescription
projectIdstring

ID of the project to retrieve the service account for. Must not be null.

optionsGetStorageServiceAccountEmailOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Taskstring

A task representing the asynchronous operation, with a result returning the email address of the service account.

Overrides

ListBuckets(string, ListBucketsOptions)

public override PagedEnumerable<Buckets, Bucket> ListBuckets(string projectId, ListBucketsOptions options = null)

Lists the buckets for a given project, synchronously but lazily.

Parameters
NameDescription
projectIdstring

The ID of the project to list the buckets from. Must not be null.

optionsListBucketsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
PagedEnumerableBucketsBucket

A sequence of buckets within the project.

Overrides Remarks

This method fetches the buckets lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

ListBucketsAsync(string, ListBucketsOptions)

public override PagedAsyncEnumerable<Buckets, Bucket> ListBucketsAsync(string projectId, ListBucketsOptions options = null)

Asynchronously lists the buckets in a given project.

Parameters
NameDescription
projectIdstring

The ID of the project to list the buckets from. Must not be null.

optionsListBucketsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
PagedAsyncEnumerableBucketsBucket

An asynchronous sequence of buckets.

Overrides Remarks

This method fetches the buckets lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

ListHmacKeys(string, string, ListHmacKeysOptions)

public override PagedEnumerable<HmacKeysMetadata, HmacKeyMetadata> ListHmacKeys(string projectId, string serviceAccountEmail = null, ListHmacKeysOptions options = null)

Lists the HMAC keys in a given project, synchronously but lazily, optionally filtering by service account email address.

Parameters
NameDescription
projectIdstring

The project containing the HMAC keys. Must not be null.

serviceAccountEmailstring

The service account email address to list keys for. May be null, in which case all HMAC keys associated with the project are returned.

optionsListHmacKeysOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
PagedEnumerableHmacKeysMetadataHmacKeyMetadata

A sequence of HMAC keys within the project.

Overrides Remarks

This method fetches the buckets lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

ListHmacKeysAsync(string, string, ListHmacKeysOptions)

public override PagedAsyncEnumerable<HmacKeysMetadata, HmacKeyMetadata> ListHmacKeysAsync(string projectId, string serviceAccountEmail = null, ListHmacKeysOptions options = null)

Lists the HMAC keys in a given project, asynchronously and lazily, optionally filtering by service account email address.

Parameters
NameDescription
projectIdstring

The project containing the HMAC keys. Must not be null.

serviceAccountEmailstring

The service account email address to list keys for. May be null, in which case all HMAC keys associated with the project are returned.

optionsListHmacKeysOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
PagedAsyncEnumerableHmacKeysMetadataHmacKeyMetadata

An asynchronous sequence of HMAC keys within the project.

Overrides Remarks

This method fetches the buckets lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

ListNotifications(string, ListNotificationsOptions)

public override IReadOnlyList<Notification> ListNotifications(string bucket, ListNotificationsOptions options = null)

Lists notification configurations associated with a bucket.

Parameters
NameDescription
bucketstring

The bucket for which to list associated notification configurations. Must not be null.

optionsListNotificationsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
IReadOnlyListNotification

A list of notification configurations associated with the specified bucket. This method never returns null.

Overrides

ListNotificationsAsync(string, ListNotificationsOptions, CancellationToken)

public override Task<IReadOnlyList<Notification>> ListNotificationsAsync(string bucket, ListNotificationsOptions options = null, CancellationToken cancellationToken = default)

Asynchronously lists notification configurations associated with a bucket.

Parameters
NameDescription
bucketstring

The bucket for which to list associated notification configurations. Must not be null.

optionsListNotificationsOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskIReadOnlyListNotification

A task representing the asynchronous operation, with a result returning the list of notification configurations associated with the specified bucket. The result is never null.

Overrides

ListObjects(string, string, ListObjectsOptions)

public override PagedEnumerable<Objects, Object> ListObjects(string bucket, string prefix = null, ListObjectsOptions options = null)

Lists the objects in a given bucket, synchronously but lazily.

Parameters
NameDescription
bucketstring

The bucket to list the objects from. Must not be null.

prefixstring

The prefix to match. Only objects with names that start with this string will be returned. This parameter may be null or empty, in which case no filtering is performed.

optionsListObjectsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
PagedEnumerableObjectsObject

A sequence of objects in the specified bucket.

Overrides Remarks

This method fetches the objects lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

ListObjectsAsync(string, string, ListObjectsOptions)

public override PagedAsyncEnumerable<Objects, Object> ListObjectsAsync(string bucket, string prefix = null, ListObjectsOptions options = null)

Asynchronously lists the objects in a given bucket.

Parameters
NameDescription
bucketstring

The bucket to list the objects from. Must not be null.

prefixstring

The prefix to match. Only objects with names that start with this string will be returned. This parameter may be null or empty, in which case no filtering is performed.

optionsListObjectsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
PagedAsyncEnumerableObjectsObject

An asynchronous sequence of objects in the specified bucket.

Overrides Remarks

This method fetches the objects lazily, making requests to the underlying service for a page of results at a time, as required. No network requests are made until the returned sequence is enumerated. This means that any exception due to an invalid request will be deferred until that time. Callers should be prepared for exceptions to be thrown while enumerating the results. In addition to failures due to invalid requests, network or service failures can cause exceptions even after the first results have been returned.

LockBucketRetentionPolicy(string, long, LockBucketRetentionPolicyOptions)

public override void LockBucketRetentionPolicy(string bucket, long metageneration, LockBucketRetentionPolicyOptions options = null)

Locks the retention policy of a bucket. This is a one-way process: once a retention policy is locked, it cannot be shortened, removed or unlocked, although it can be increased in duration. The lock persists until the bucket is deleted.

Parameters
NameDescription
bucketstring

The name of the bucket whose retention policy should be locked. Must not be null.

metagenerationlong

The current metageneration of the bucket, used to validate that the bucket version to be locked is the intended one.

optionsLockBucketRetentionPolicyOptions

The options for the operation. May be null, in which case defaults will be supplied.

Overrides

LockBucketRetentionPolicyAsync(string, long, LockBucketRetentionPolicyOptions, CancellationToken)

public override Task LockBucketRetentionPolicyAsync(string bucket, long metageneration, LockBucketRetentionPolicyOptions options = null, CancellationToken cancellationToken = default)

Asynchronously locks the retention policy of a bucket. This is a one-way process: once a retention policy is locked, it cannot be shortened, removed or unlocked, although it can be increased in duration. The lock persists until the bucket is deleted.

Parameters
NameDescription
bucketstring

The name of the bucket whose retention policy should be locked. Must not be null.

metagenerationlong

The current metageneration of the bucket, used to validate that the bucket version to be locked is the intended one.

optionsLockBucketRetentionPolicyOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
Task

A task representing the asynchronous operation.

Overrides

ModifyBucketLabels(string, IDictionary<string, string>, ModifyBucketLabelsOptions)

public override IDictionary<string, string> ModifyBucketLabels(string bucket, IDictionary<string, string> labels, ModifyBucketLabelsOptions options = null)

Sets or removes one or more labels on a bucket.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

labelsIDictionarystringstring

The labels to set. Must contain at least one entry; keys must not be null, but values may be (indicating label removal).

optionsModifyBucketLabelsOptions

The options for the operation. May be null, in which case defaults will be supplied.

Returns
TypeDescription
IDictionarystringstring

A dictionary with the same keys as labels, and values indicating the corresponding label value before this operation completed. Labels which weren't present on the bucket before the modification have corresponding null values in the returned dictionary.

Overrides Remarks

Each entry in labels is treated as a label to set or remove. If the value is null, it will be removed from the bucket; otherwise, it will be set/added. Labels which do not have an entry in the dictionary will be ignored.

ModifyBucketLabelsAsync(string, IDictionary<string, string>, ModifyBucketLabelsOptions, CancellationToken)

public override Task<IDictionary<string, string>> ModifyBucketLabelsAsync(string bucket, IDictionary<string, string> labels, ModifyBucketLabelsOptions options = null, CancellationToken cancellationToken = default)

Sets or removes one or more labels on a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

labelsIDictionarystringstring

The labels to set. Must contain at least one entry; keys must not be null, but values may be (indicating label removal).

optionsModifyBucketLabelsOptions

The options for the operation. May be null, in which case defaults will be supplied.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskIDictionarystringstring

A dictionary with the same keys as labels, and values indicating the corresponding label value before this operation completed. Labels which weren't present on the bucket before the modification have corresponding null values in the returned dictionary.

Overrides Remarks

Each entry in labels is treated as a label to set or remove. If the value is null, it will be removed from the bucket; otherwise, it will be set/added. Labels which do not have an entry in the dictionary will be ignored.

PatchBucket(Bucket, PatchBucketOptions)

public override Bucket PatchBucket(Bucket bucket, PatchBucketOptions options = null)

Patches the metadata for a storage bucket synchronously.

Parameters
NameDescription
bucketBucket

Bucket to update. Must not be null, and must have a populated Name property.

optionsPatchBucketOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Bucket

The Bucket representation of the updated storage bucket.

Overrides

PatchBucketAsync(Bucket, PatchBucketOptions, CancellationToken)

public override Task<Bucket> PatchBucketAsync(Bucket bucket, PatchBucketOptions options = null, CancellationToken cancellationToken = default)

Patches the metadata for a storage bucket asynchronously.

Parameters
NameDescription
bucketBucket

Bucket to update. Must not be null, and must have a populated Name property.

optionsPatchBucketOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskBucket

A task representing the asynchronous operation, with a result returning the Bucket representation of the bucket storage bucket.

Overrides

PatchObject(Object, PatchObjectOptions)

public override Object PatchObject(Object obj, PatchObjectOptions options = null)

Patches the metadata for an object in storage synchronously.

Parameters
NameDescription
objObject

Object to update. Must not be null, and must have populated Name and Bucket properties.

optionsPatchObjectOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Object

The Object representation of the updated storage object.

Overrides

PatchObjectAsync(Object, PatchObjectOptions, CancellationToken)

public override Task<Object> PatchObjectAsync(Object obj, PatchObjectOptions options = null, CancellationToken cancellationToken = default)

Patches the metadata for an object in storage asynchronously.

Parameters
NameDescription
objObject

Object to update. Must not be null, and must have populated Name and Bucket properties.

optionsPatchObjectOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the updated storage object.

Overrides

SetBucketIamPolicy(string, Policy, SetBucketIamPolicyOptions)

public override Policy SetBucketIamPolicy(string bucket, Policy policy, SetBucketIamPolicyOptions options = null)

Updates the IAM policy information about a bucket synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

policyPolicy

The new IAM policy for the bucket. Must not be null.

optionsSetBucketIamPolicyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Policy

The Policy representation of the resulting storage bucket IAM policy.

Overrides

SetBucketIamPolicyAsync(string, Policy, SetBucketIamPolicyOptions, CancellationToken)

public override Task<Policy> SetBucketIamPolicyAsync(string bucket, Policy policy, SetBucketIamPolicyOptions options = null, CancellationToken cancellationToken = default)

Updates the IAM policy information about a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

policyPolicy

The new IAM policy for the bucket. Must not be null.

optionsSetBucketIamPolicyOptions

Additional options for the fetch operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskPolicy

A task representing the asynchronous operation, with a result returning the Policy representation of the resulting storage bucket IAM policy.

Overrides

TestBucketIamPermissions(string, IEnumerable<string>, TestBucketIamPermissionsOptions)

public override IList<string> TestBucketIamPermissions(string bucket, IEnumerable<string> permissions, TestBucketIamPermissionsOptions options = null)

Tests the IAM permissions for a bucket synchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

permissionsIEnumerablestring

The permissions to test. Must not be null or empty.

optionsTestBucketIamPermissionsOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
IListstring

The permissions held by the caller.

Overrides

TestBucketIamPermissionsAsync(string, IEnumerable<string>, TestBucketIamPermissionsOptions, CancellationToken)

public override Task<IList<string>> TestBucketIamPermissionsAsync(string bucket, IEnumerable<string> permissions, TestBucketIamPermissionsOptions options = null, CancellationToken cancellationToken = default)

Tests the IAM policy information about a bucket asynchronously.

Parameters
NameDescription
bucketstring

The name of the bucket. Must not be null.

permissionsIEnumerablestring

The permissions to test. Must not be null or empty.

optionsTestBucketIamPermissionsOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskIListstring

A task representing the asynchronous operation, with a result returning the permissions held by the caller.

Overrides

UpdateBucket(Bucket, UpdateBucketOptions)

public override Bucket UpdateBucket(Bucket bucket, UpdateBucketOptions options = null)

Updates the metadata for a storage bucket synchronously.

Parameters
NameDescription
bucketBucket

Bucket to update. Must not be null, and must have a populated Name.

optionsUpdateBucketOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Bucket

The Bucket representation of the updated storage bucket.

Overrides Remarks

If no preconditions are explicitly set in options, the metageneration of bucket is used as a precondition for the update, unless ForceNoPreconditions is set to true.

UpdateBucketAsync(Bucket, UpdateBucketOptions, CancellationToken)

public override Task<Bucket> UpdateBucketAsync(Bucket bucket, UpdateBucketOptions options = null, CancellationToken cancellationToken = default)

Updates the metadata for storage bucket asynchronously.

Parameters
NameDescription
bucketBucket

Bucket to update. Must not be null, and must have a populated Name.

optionsUpdateBucketOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskBucket

A task representing the asynchronous operation, with a result returning the Bucket representation of the storage bucket.

Overrides Remarks

If no preconditions are explicitly set in options, the metageneration of bucket is used as a precondition for the update, unless ForceNoPreconditions is set to true.

UpdateHmacKey(HmacKeyMetadata, UpdateHmacKeyOptions)

public override HmacKeyMetadata UpdateHmacKey(HmacKeyMetadata key, UpdateHmacKeyOptions options = null)

Synchronously updates an HMAC key's metadata.

Parameters
NameDescription
keyHmacKeyMetadata

The key to update. Must not be null, and the ProjectId and AccessId properties must be set.

optionsUpdateHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
HmacKeyMetadata

The updated key metadata.

Overrides

UpdateHmacKeyAsync(HmacKeyMetadata, UpdateHmacKeyOptions, CancellationToken)

public override Task<HmacKeyMetadata> UpdateHmacKeyAsync(HmacKeyMetadata key, UpdateHmacKeyOptions options = null, CancellationToken cancellationToken = default)

Asynchronously updates an HMAC key's metadata.

Parameters
NameDescription
keyHmacKeyMetadata

The key to update. Must not be null, and the ProjectId and AccessId properties must be set.

optionsUpdateHmacKeyOptions

Additional options for the operation. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskHmacKeyMetadata

A task representing the asynchronous operation, with a result returning the updated key metadata.

Overrides

UpdateObject(Object, UpdateObjectOptions)

public override Object UpdateObject(Object obj, UpdateObjectOptions options = null)

Updates the metadata for an object in storage synchronously.

Parameters
NameDescription
objObject

Object to update. Must not be null, and must have populated Name and Bucket properties.

optionsUpdateObjectOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

Returns
TypeDescription
Object

The Object representation of the updated storage object.

Overrides Remarks

If no preconditions are explicitly set in options, the generation and metageneration of obj are used as a precondition for the update, unless ForceNoPreconditions is set to true.

UpdateObjectAsync(Object, UpdateObjectOptions, CancellationToken)

public override Task<Object> UpdateObjectAsync(Object obj, UpdateObjectOptions options = null, CancellationToken cancellationToken = default)

Updates the metadata for an object in storage asynchronously.

Parameters
NameDescription
objObject

Object to update. Must not be null, and must have populated Name and Bucket properties.

optionsUpdateObjectOptions

Additional options for the update. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the storage object.

Overrides Remarks

If no preconditions are explicitly set in options, the generation and metageneration of obj are used as a precondition for the update, unless ForceNoPreconditions is set to true.

UploadObject(Object, Stream, UploadObjectOptions, IProgress<IUploadProgress>)

public override Object UploadObject(Object destination, Stream source, UploadObjectOptions options = null, IProgress<IUploadProgress> progress = null)

Uploads the data for an object in storage synchronously, from a specified stream.

Parameters
NameDescription
destinationObject

Object to create or update. Must not be null, and must have the name, bucket and content type populated.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

progressIProgressIUploadProgress

Progress reporter for the upload. May be null.

Returns
TypeDescription
Object

The Object representation of the uploaded object.

Overrides

UploadObject(string, string, string, Stream, UploadObjectOptions, IProgress<IUploadProgress>)

public override Object UploadObject(string bucket, string objectName, string contentType, Stream source, UploadObjectOptions options = null, IProgress<IUploadProgress> progress = null)

Uploads the data for an object in storage synchronously, from a specified stream.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

contentTypestring

The content type of the object. This should be a MIME type such as "text/html" or "application/octet-stream". May be null.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

progressIProgressIUploadProgress

Progress reporter for the upload. May be null.

Returns
TypeDescription
Object

The Object representation of the uploaded object.

Overrides

UploadObjectAsync(Object, Stream, UploadObjectOptions, CancellationToken, IProgress<IUploadProgress>)

public override Task<Object> UploadObjectAsync(Object destination, Stream source, UploadObjectOptions options = null, CancellationToken cancellationToken = default, IProgress<IUploadProgress> progress = null)

Uploads the data for an object in storage asynchronously, from a specified stream.

Parameters
NameDescription
destinationObject

Object to create or update. Must not be null, and must have the name, bucket and content type populated.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

progressIProgressIUploadProgress

Progress reporter for the upload. May be null.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the uploaded object.

Overrides

UploadObjectAsync(string, string, string, Stream, UploadObjectOptions, CancellationToken, IProgress<IUploadProgress>)

public override Task<Object> UploadObjectAsync(string bucket, string objectName, string contentType, Stream source, UploadObjectOptions options = null, CancellationToken cancellationToken = default, IProgress<IUploadProgress> progress = null)

Uploads the data for an object in storage asynchronously, from a specified stream.

Parameters
NameDescription
bucketstring

The name of the bucket containing the object. Must not be null.

objectNamestring

The name of the object within the bucket. Must not be null.

contentTypestring

The content type of the object. This should be a MIME type such as "text/html" or "application/octet-stream". May be null.

sourceStream

The stream to read the data from. Must not be null.

optionsUploadObjectOptions

Additional options for the upload. May be null, in which case appropriate defaults will be used.

cancellationTokenCancellationToken

The token to monitor for cancellation requests.

progressIProgressIUploadProgress

Progress reporter for the upload. May be null.

Returns
TypeDescription
TaskObject

A task representing the asynchronous operation, with a result returning the Object representation of the uploaded object.

Overrides