private void UploadSingleFile(IAmazonGlacier client, string vaultName, string accountId, string filePath, string description) { using (var transferManager = new ArchiveTransferManager(client)) { var runner = new ProgressRunner(this); var uploadOptions = new UploadOptions { AccountId = accountId }; var tracker = new UploadProgressTracker(runner, handler => uploadOptions.StreamTransferProgress += handler, filePath); var output = new CmdletOutput(); runner.SafeRun(() => { #if DESKTOP var result = transferManager.Upload(vaultName, description, filePath, uploadOptions); #else var result = transferManager.UploadAsync(vaultName, description, filePath, uploadOptions).GetAwaiter().GetResult(); #endif output.PipelineOutput = new FileUploadResult(filePath, result); }, tracker, output); // write as we go so that any subsequent error doesn't cause the user to lose // the ids of archives we have successfully uploaded so far ProcessOutput(output); } }
private static IV1Facade RestClientV1Initializer(IRequestBuilderFactory requestBuilderFactory, IClientProvider clientProvider, IContentFormattersFactory contentFormattersFactory) { var uploadProgressTracker = new UploadProgressTracker(); var parameterHelper = new ParameterHelper(); var executionHelper = new ExecutionHelper(); var cabinet = new CabinetV1(requestBuilderFactory, clientProvider); var customAttributeValues = new CustomAttributeValues(requestBuilderFactory, clientProvider); var document = new DocumentV1(requestBuilderFactory, clientProvider, contentFormattersFactory, uploadProgressTracker); var filter = new Filter(requestBuilderFactory, clientProvider, parameterHelper, executionHelper); var folder = new Folder(requestBuilderFactory, clientProvider, parameterHelper, executionHelper, contentFormattersFactory); var group = new Group(clientProvider, requestBuilderFactory); var repository = new Repository(requestBuilderFactory, clientProvider); var savedSearch = new SavedSearch(requestBuilderFactory, clientProvider, parameterHelper, executionHelper); var search = new SearchV1(requestBuilderFactory, clientProvider, parameterHelper, executionHelper); var sync = new Sync(requestBuilderFactory, clientProvider); var user = new UserV1(requestBuilderFactory, clientProvider, parameterHelper, executionHelper); var workspace = new Workspace(requestBuilderFactory, clientProvider, parameterHelper, executionHelper); return(new V1Facade(cabinet, customAttributeValues, document, filter, folder, group, repository, savedSearch, search, sync, user, workspace)); }