Amazon Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用适用于 .NET 的 AWS 开发工具包在 Amazon Glacier 中从文件库下载档案

以下 C# 代码示例使用适用于 .NET 的 AWS 开发工具包的高级 API 来下载您在之前的使用适用于 .NET 的 AWS 开发工具包在 Amazon Glacier 中将档案上传到文件库步骤中上传的档案。在代码示例中,请注意以下情况:

  • 该示例为指定的 Amazon Glacier 区域终端节点创建 ArchiveTransferManager 类的实例。

  • 该代码示例使用 美国西部(俄勒冈) 区域 (us-west-2) 匹配您之前在步骤 2:在 Amazon Glacier 中创建文件库中创建文件库的位置。

  • 该示例使用 ArchiveTransferManager 类的 Download 方法下载档案。Download 方法创建了 Amazon SNS 主题,以及订阅该主题的 Amazon SQS 队列。然后,它启动了档案检索任务,并对队列进行轮询以便找到可用档案。如果存档可用,则开始下载。有关检索时间的详细信息,请参阅 档案检索选项

有关如何运行以下示例的分步说明,请参阅运行代码示例。您需要更新 步骤 3:在 Amazon Glacier 中将档案上传到文件库 中已上传文件的档案 ID 旁显示的代码。

例 — 使用适用于 .NET 的 AWS 开发工具包高级 API 下载档案

using System; using Amazon.Glacier; using Amazon.Glacier.Transfer; using Amazon.Runtime; namespace glacier.amazon.com.docsamples { class ArchiveDownloadHighLevel_GettingStarted { static string vaultName = "examplevault"; static string archiveId = "*** Provide archive ID ***"; static string downloadFilePath = "*** Provide the file name and path to where to store the download ***"; public static void Main(string[] args) { try { var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2); var options = new DownloadOptions(); options.StreamTransferProgress += ArchiveDownloadHighLevel_GettingStarted.progress; // Download an archive. Console.WriteLine("Intiating the archive retrieval job and then polling SQS queue for the archive to be available."); Console.WriteLine("Once the archive is available, downloading will begin."); manager.Download(vaultName, archiveId, downloadFilePath, options); Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } catch (AmazonGlacierException e) { Console.WriteLine(e.Message); } catch (AmazonServiceException e) { Console.WriteLine(e.Message); } catch (Exception e) { Console.WriteLine(e.Message); } Console.WriteLine("To continue, press Enter"); Console.ReadKey(); } static int currentPercentage = -1; static void progress(object sender, StreamTransferProgressArgs args) { if (args.PercentDone != currentPercentage) { currentPercentage = args.PercentDone; Console.WriteLine("Downloaded {0}%", args.PercentDone); } } } }bb celan