コード例 #1
0
 internal UploadDirectoryCommand(TransferUtility utility, TransferUtilityConfig config, TransferUtilityUploadDirectoryRequest request)
 {
     this._utility = utility;
     this._request = request;
     this._config  = config;
 }
コード例 #2
0
 internal UploadDirectoryCommand(TransferUtility utility, TransferUtilityUploadDirectoryRequest request)
 {
     this._utility = utility;
     this._request = request;
 }
コード例 #3
0
        private CmdletOutput UploadFolderToS3(ExecutorContext context)
        {
            var cmdletContext = context as CmdletContext;
            var request       = new TransferUtilityUploadDirectoryRequest
            {
                Directory   = cmdletContext.Folder,
                BucketName  = cmdletContext.BucketName,
                KeyPrefix   = cmdletContext.KeyPrefix,
                ContentType = cmdletContext.ContentType
            };

            if (cmdletContext.Recurse)
            {
                request.SearchOption = SearchOption.AllDirectories;
            }
            else
            {
                request.SearchOption = SearchOption.TopDirectoryOnly;
            }
            if (!string.IsNullOrEmpty(cmdletContext.SearchPattern))
            {
                request.SearchPattern = cmdletContext.SearchPattern;
            }

            if (cmdletContext.CannedACL != null)
            {
                request.CannedACL = cmdletContext.CannedACL.Value;
            }
            if (cmdletContext.StorageClass != null)
            {
                request.StorageClass = cmdletContext.StorageClass.Value;
            }
            if (cmdletContext.ServerSideEncryptionMethod != null)
            {
                request.ServerSideEncryptionMethod = cmdletContext.ServerSideEncryptionMethod.Value;
            }
            if (cmdletContext.ServerSideEncryptionKeyManagementServiceKeyId != null)
            {
                request.ServerSideEncryptionKeyManagementServiceKeyId = cmdletContext.ServerSideEncryptionKeyManagementServiceKeyId;
            }
            if (cmdletContext.TagSet != null)
            {
                request.TagSet = new List <Tag>(cmdletContext.TagSet);
            }

            request.CalculateContentMD5Header = cmdletContext.CalculateContentMD5Header;

            AmazonS3Helper.SetExtraRequestFields(request, cmdletContext);

            CmdletOutput output;

            using (var tu = new TransferUtility(Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint)))
            {
                Utils.Common.WriteVerboseEndpointMessage(this, Client.Config, "Amazon S3 object upload APIs");

                var runner  = new ProgressRunner(this);
                var tracker = new UploadFolderProgressTracker(runner, handler => request.UploadDirectoryProgressEvent += handler, cmdletContext.Folder);
                output = runner.SafeRun(() => tu.UploadDirectory(request), tracker);

                WriteVerbose(string.Format("Uploaded {0} object(s) to bucket '{1}' from '{2}' with keyprefix '{3}'",
                                           tracker.UploadedCount,
                                           cmdletContext.BucketName,
                                           cmdletContext.Folder,
                                           cmdletContext.OriginalKeyPrefix));
            }

            return(output);
        }