private void UploadSingleFile(IAmazonGlacier client, string vaultName, string accountId, string startingFolder, string filePath, int thisFileIndex, int allFilesCount) { using (var transferManager = new ArchiveTransferManager(client)) { var runner = new ProgressRunner(this); var uploadOptions = new UploadOptions { AccountId = accountId }; var tracker = new UploadFolderProgressTracker(runner, handler => uploadOptions.StreamTransferProgress += handler, startingFolder, filePath, thisFileIndex, allFilesCount); var output = new CmdletOutput(); runner.SafeRun(() => { #if DESKTOP var result = transferManager.Upload(vaultName, "", filePath, uploadOptions); #else var result = transferManager.UploadAsync(vaultName, "", filePath, uploadOptions).GetAwaiter().GetResult(); #endif output.PipelineOutput = new FileUploadResult(filePath, result); }, tracker, output); ProcessOutput(output); } }
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); } 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); }