static void RequestVaultInventory(IAmazonGlacier glacier) { // This sample method forces Glacier to start inventorying the new vault // created by the sample. Glacier's default behavior is to inventory a // vault once every 24 hours. Vaults cannot be deleted unless (1) they // are empty and (2) there has been no write activity since the last // inventory. By requesting an inventory ahead of schedule, it allows // you the user to delete the sample vault created by this code earlier. // Note that it can take Glacier a few hours to finish inventory processing. var req = new InitiateJobRequest { VaultName = VaultName, JobParameters = new JobParameters { Type = "inventory-retrieval" } }; Task <InitiateJobResponse> res = glacier.InitiateJobAsync(req); Task.WaitAll(res); if (res.IsCompletedSuccessfully) { Console.WriteLine($"Inventory job for vault {VaultName} has been queued. On completion you may delete the vault assuming no further write activity takes place."); } }
private static void HandleInventory(string[] args) { var region = RegionEndpoint.EnumerableAllRegions.SingleOrDefault(reg => reg.SystemName == args[2]); if (args.Length < 5 || region == null) { Console.WriteLine($"args should be aws_key aws_secret region vault_name output_filename"); return; } var aws_key = args[0]; var aws_secret = args[1]; var vault_name = args[3]; var filename = args[4]; var creds = new BasicAWSCredentials(aws_key, aws_secret); var config = new AmazonGlacierConfig { RegionEndpoint = region, Timeout = TimeSpan.FromDays(10) }; var client = new AmazonGlacierClient(creds, config); var initReq = new InitiateJobRequest(vault_name, new JobParameters("JSON", "inventory-retrieval", null, null)); var promise = client.InitiateJobAsync(initReq); promise.ContinueWith(job => { Console.WriteLine($"Job ID: {job.Result.JobId}"); File.WriteAllText(filename, job.Result.JobId); }); Console.WriteLine("Retrieval job initiated"); }
internal InitiateJobResponse InitiateJob(InitiateJobRequest request) { var marshaller = new InitiateJobRequestMarshaller(); var unmarshaller = InitiateJobResponseUnmarshaller.Instance; return(Invoke <InitiateJobRequest, InitiateJobResponse>(request, marshaller, unmarshaller)); }
private static void InitiateGlacierJob(Topic topic) { // Make the call to AWS Glacier to get inventory var settings = SettingsManager.GetSettings(); using (var client = new AmazonGlacierClient( settings.AWSAccessKeyID, settings.AWSSecretAccessKey, RegionEndpoint.GetBySystemName(settings.AWSGlacierRegion.SystemName))) { var initJobRequest = new InitiateJobRequest { VaultName = settings.AWSGlacierVault, JobParameters = new JobParameters { Type = topic.Type, Description = topic.Description, ArchiveId = topic.ArchiveId, SNSTopic = topic.TopicARN, } }; var initJobResponse = client.InitiateJob(initJobRequest); topic.JobId = initJobResponse.JobId; topic.Status = GlacierResult.JobRequested; topic.DateRequested = DateTime.Now; SaveTopicFile(topic); } }
/// <summary> /// Initiates the asynchronous execution of the InitiateJob operation. /// <seealso cref="Amazon.Glacier.IAmazonGlacier"/> /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the InitiateJob operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task <InitiateJobResponse> InitiateJobAsync(InitiateJobRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new InitiateJobRequestMarshaller(); var unmarshaller = InitiateJobResponseUnmarshaller.Instance; return(InvokeAsync <InitiateJobRequest, InitiateJobResponse>(request, marshaller, unmarshaller, cancellationToken)); }
public async Task <string> InitiateDownloadingInventoryAsync(CancellationToken token) { var req = new InitiateJobRequest() { VaultName = Vault, JobParameters = new JobParameters() { Type = "inventory-retrieval" } }; var res = await client.InitiateJobAsync(req); return(res.JobId); }
public string InitiateVaultInventoryRequest() { InitiateJobRequest inventoryRequest = new InitiateJobRequest() { VaultName = _vault, JobParameters = new JobParameters() { Type = "inventory-retrieval" } }; InitiateJobResponse response = _amazonGlacierClient.InitiateJob(inventoryRequest); return(response.InitiateJobResult.JobId); }
public string RequestDownload(string id) { var jobRequest = new InitiateJobRequest() { VaultName = this.VaultName, JobParameters = new JobParameters() { Type = "archive-retrieval", ArchiveId = id } }; var jobResponse = Service.InitiateJob(jobRequest); return(jobResponse.JobId); }
public string InitiateDownloadRequest(string archiveId, string snsTopic = "") { InitiateJobRequest initDownloadRequest = new InitiateJobRequest() { VaultName = _vault, JobParameters = new JobParameters() { Type = "archive-retrieval", ArchiveId = archiveId } }; InitiateJobResponse response = _amazonGlacierClient.InitiateJob(initDownloadRequest); return(response.InitiateJobResult.JobId); }
public async Task <IActionResult> StartInventory() { InitiateJobRequest request = new InitiateJobRequest { VaultName = S3Settings.VaultName, JobParameters = new JobParameters { Type = "inventory-retrieval", Format = "JSON" } }; InitiateJobResponse response = await GlacierClient.InitiateJobAsync(request); return(Ok(response.JobId)); }
public async Task <IActionResult> StartArchiveRetrieval(string archiveId) { InitiateJobRequest request = new InitiateJobRequest { VaultName = S3Settings.VaultName, JobParameters = new JobParameters { Type = "archive-retrieval", ArchiveId = archiveId } }; InitiateJobResponse response = await GlacierClient.InitiateJobAsync(request); return(Ok(response.JobId)); }
private static string RequestInventory(string vaultName) { using (IAmazonGlacier client = new AmazonGlacierClient(RegionEndpoint.EUWest1)) { InitiateJobRequest initJobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { Type = "inventory-retrieval", Format = "CSV" } }; InitiateJobResponse initJobResponse = client.InitiateJob(initJobRequest); return(initJobResponse.JobId); } }
public override async Task DownloadFileAsync(StorageFile file, Stream output, CancellationToken token, Action <TransferProgress> progressCallback) { if (file.IsFolder) { throw new NotSupportedException("Glacier is not supported directories"); } string jobId; if (((GlacierFile)file).JobId == null) { var initReq = new InitiateJobRequest(Vault, new JobParameters { ArchiveId = file.Id, Type = "archive-retrieval" }); var initResult = await client.InitiateJobAsync(initReq, token); jobId = initResult.JobId; ((GlacierFile)file).JobId = jobId; } else { jobId = ((GlacierFile)file).JobId; } var describeReq = new DescribeJobRequest(Vault, jobId); var describeResult = await client.DescribeJobAsync(describeReq, token); var ok = false; while (!ok) // while job incompleted { if (describeResult.Completed) { ok = true; } else { await Task.Delay(Timeout, token); describeResult = await client.DescribeJobAsync(describeReq, token); } } var req = new GetJobOutputRequest(Vault, jobId, null); var result = await client.GetJobOutputAsync(req, token); await Common.CopyStreamAsync(result.Body, output, null, result.ContentLength); }
string initiateJob() { var request = new InitiateJobRequest() { AccountId = this.options.AccountId, VaultName = this.vaultName, JobParameters = new JobParameters() { ArchiveId = this.archiveId, SNSTopic = topicArn, Type = "archive-retrieval" } }; ((Amazon.Runtime.Internal.IAmazonWebServiceRequest)request).AddBeforeRequestHandler(new ArchiveTransferManager.UserAgentPostFix("DownloadArchive").UserAgentRequestEventHandlerSync); var response = this.manager.GlacierClient.InitiateJob(request); return response.JobId; }
static string GetVaultInventoryJobId(string vaultName, AmazonGlacierClient client) { // Initiate job. InitiateJobRequest initJobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { Type = "inventory-retrieval", Description = DateTime.Now.ToString() + ": This job is to download a vault inventory.", SNSTopic = topicArn, } }; InitiateJobResponse initJobResponse = client.InitiateJob(initJobRequest); string jobId = initJobResponse.JobId; return(jobId); }
static void RetrieveArchive(AmazonGlacier client, AWSArchiveRquest request) { // Initiate job. InitiateJobRequest initJobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { Type = "archive-retrieval", ArchiveId = request.ArchiveID, Description = "This job is to download archive updated as part of getting started", SNSTopic = topicArn, } }; InitiateJobResponse initJobResponse = client.InitiateJob(initJobRequest); string jobId = initJobResponse.InitiateJobResult.JobId; // Check queue for a message and if job completed successfully, download archive. ProcessQueue(jobId, client, request); }
void GetVaultInventory(AmazonGlacierClient client) { // Initiate job. var initJobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { Type = "inventory-retrieval", Description = "This job is to download a vault inventory.", SNSTopic = topicArn, } }; var initJobResponse = client.InitiateJob(initJobRequest); string jobId = initJobResponse.JobId; // Check queue for a message and if job completed successfully, download inventory. ProcessQueue(jobId, client); }
string initiateJob() { var request = new InitiateJobRequest() { AccountId = this.options.AccountId, VaultName = this.vaultName, JobParameters = new JobParameters() { ArchiveId = this.archiveId, SNSTopic = topicArn, Type = "archive-retrieval" } }; request.BeforeRequestEvent += new UserAgentPostFix("DownloadArchive").UserAgentRequestEventHandlerSync; var response = this.manager.GlacierClient.InitiateJob(request); return(response.InitiateJobResult.JobId); }
/// <summary> /// This method initiates an archive retieval job for the specified archive and returns back the job id. /// Once the is complete /// </summary> /// <param name="vaultName">The name of the vault that contains the archive to initiate the job for.</param> /// <param name="archiveId">The archive id that the download job will retrieve.</param> /// <param name="options">Additional options that can be used for initiating archive retrieval.</param> /// <returns>The job id for the initiated job.</returns> public string InitiateArchiveRetrievalJob(string vaultName, string archiveId, InitiateArchiveRetrievalOptions options) { InitiateJobRequest jobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { ArchiveId = archiveId, Type = "archive-retrieval" } }; if (options != null) { jobRequest.AccountId = options.AccountId; jobRequest.JobParameters.SNSTopic = options.SNSTopic; } var jobId = glacierClient.InitiateJob(jobRequest).JobId; return(jobId); }
/// <summary> /// This method initiates an archive retieval job for the specified archive and returns back the job id. /// Once the job is complete /// </summary> /// <param name="vaultName">The name of the vault that contains the archive to initiate the job for.</param> /// <param name="archiveId">The archive id that the download job will retrieve.</param> /// <param name="options">Additional options that can be used for initiating archive retrieval.</param> /// <returns>The job id for the initiated job.</returns> public async Task <string> InitiateArchiveRetrievalJobAsync(string vaultName, string archiveId, InitiateArchiveRetrievalOptions options) { InitiateJobRequest jobRequest = new InitiateJobRequest() { VaultName = vaultName, JobParameters = new JobParameters() { ArchiveId = archiveId, Type = "archive-retrieval" } }; if (options != null) { jobRequest.AccountId = options.AccountId; jobRequest.JobParameters.SNSTopic = options.SNSTopic; } var glacierClientTask = await glacierClient.InitiateJobAsync(jobRequest).ConfigureAwait(false); return(glacierClientTask.JobId); }
public void Execute() { var initJobRequest = new InitiateJobRequest { VaultName = "backup-home", JobParameters = new JobParameters { Type = "inventory-retrieval" } }; using (AmazonGlacierClient client = new AmazonGlacierClient(RegionEndpoint.USWest2)) { InitiateJobResponse initJobResponse = client.InitiateJob(initJobRequest); string jobId = initJobResponse.JobId; ConsoleView.Show("Inventory requested"); ConsoleView.Show(string.Format("JobId: [{0}]", jobId)); } }