/// <inheritdoc />
        public override async Task <Object> UploadObjectAsync(
            Object destination,
            Stream source,
            UploadObjectOptions options          = null,
            CancellationToken cancellationToken  = default(CancellationToken),
            IProgress <IUploadProgress> progress = null)
        {
            ValidateObject(destination, nameof(destination));
            GaxPreconditions.CheckNotNull(source, nameof(source));
            var mediaUpload = new CustomMediaUpload(Service, destination, destination.Bucket, source, destination.ContentType);

            options?.ModifyMediaUpload(mediaUpload);
            ApplyEncryptionKey(options?.EncryptionKey, mediaUpload);
            if (progress != null)
            {
                mediaUpload.ProgressChanged += progress.Report;
            }
            var finalProgress = await mediaUpload.UploadAsync(cancellationToken).ConfigureAwait(false);

            if (finalProgress.Exception != null)
            {
                throw finalProgress.Exception;
            }
            return(mediaUpload.ResponseBody);
        }
        /// <inheritdoc />
        public override Object UploadObject(
            Object destination,
            Stream source,
            UploadObjectOptions options          = null,
            IProgress <IUploadProgress> progress = null)
        {
            ValidateObject(destination, nameof(destination));
            GaxPreconditions.CheckNotNull(source, nameof(source));
            var mediaUpload = new CustomMediaUpload(Service, destination, destination.Bucket, source, destination.ContentType);

            options?.ModifyMediaUpload(mediaUpload);
            ApplyEncryptionKey(options?.EncryptionKey, mediaUpload);
            if (progress != null)
            {
                mediaUpload.ProgressChanged += progress.Report;
            }
            var finalProgress = mediaUpload.Upload();

            if (finalProgress.Exception != null)
            {
                throw finalProgress.Exception;
            }

            return(mediaUpload.ResponseBody);
        }
コード例 #3
0
        /// <inheritdoc />
        public override ObjectsResource.InsertMediaUpload CreateObjectUploader(
            Object destination,
            Stream source,
            UploadObjectOptions options = null)
        {
            ValidateObject(destination, nameof(destination));
            GaxPreconditions.CheckNotNull(source, nameof(source));
            var mediaUpload = new CustomMediaUpload(Service, destination, destination.Bucket, source, destination.ContentType);

            options?.ModifyMediaUpload(mediaUpload);
            ApplyEncryptionKey(options?.EncryptionKey, options?.KmsKeyName, mediaUpload);
            return(mediaUpload);
        }