

 **此頁面僅適用於使用 Vaults 和 2012 年原始 REST API 的 Amazon Glacier 服務的現有客戶。**

如果您要尋找封存儲存解決方案，建議您在 Amazon Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 中使用 Amazon Glacier 儲存類別。 Amazon S3 若要進一步了解這些儲存選項，請參閱 [Amazon Glacier 儲存類別](https://aws.amazon.com/s3/storage-classes/glacier/)。

Amazon Glacier （原始獨立保存庫型服務） 不再接受新客戶。Amazon Glacier 是一項獨立服務，具有自己的 APIs，可將資料存放在保存庫中，並與 Amazon S3 和 Amazon S3 Glacier 儲存類別不同。您現有的資料將在 Amazon Glacier 中無限期保持安全且可存取。不需要遷移。對於低成本、長期的封存儲存， AWS 建議使用 [Amazon S3 Glacier 儲存類別](https://aws.amazon.com/s3/storage-classes/glacier/)，透過 S3 儲存貯體型 APIs、完整 AWS 區域 可用性、降低成本 AWS 和服務整合，提供卓越的客戶體驗。如果您想要增強功能，請考慮使用我們的解決方案指南，將資料從 Amazon S3 Glacier 保存庫傳輸至 Amazon S3 Glacier 儲存類別，以遷移至 Amazon S3 Glacier 儲存類別。 [AWS Amazon Glacier Amazon S3 ](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon Glacier 入門
開始使用

您可以使用保存庫和封存來開始使用 Amazon Glacier (Amazon Glacier)。保存庫**是用於儲存封存的容器，封存**是存放在保存庫中的任何物件 (如相片、影片或文件)。存檔是 Amazon Glacier 中儲存體的基本單位。此入門練習提供說明，讓您探索保存庫和封存的基本 Amazon Glacier 操作。如需有關這些資源的詳細資訊，請參閱 [Amazon Glacier 資料模型](amazon-glacier-data-model.md)一節。

在入門練習中，您將建立保存庫、上傳和下載封存，最後刪除封存和保存庫。您可以以程式設計方式執行所有這些操作。不過，入門練習會使用 Amazon Glacier 管理主控台來建立和刪除保存庫。對於上傳和下載封存，此入門區段使用 適用於 Java 的 AWS SDK 和 的高階 API 適用於 .NET 的 AWS SDK。高階 API 可在使用 Amazon Glacier 時提供簡化的程式設計體驗。如需搭配 AWS SDKs 使用高階 API 的詳細資訊，請參閱 [搭配 Amazon Glacier 使用 AWS SDKs](using-aws-sdk.md)。

 

**重要**  
Amazon Glacier 會提供主控台。不過，上傳、下載或刪除等任何封存操作都需要您使用 AWS Command Line Interface (CLI) 或寫入程式碼。沒有主控台支援封存操作。例如，若要上傳資料，例如相片、影片和其他文件，您必須使用 AWS CLI 或編寫程式碼來提出請求，方法是直接使用 REST API 或使用 AWS SDKs。  
若要安裝 AWS CLI，請參閱 [AWS Command Line Interface](https://aws.amazon.com/cli/)。如需搭配 使用 Amazon Glacier 的詳細資訊 AWS CLI，請參閱 [AWS CLI Amazon Glacier 的參考](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)。如需使用 AWS CLI 將封存上傳至 Amazon Glacier 的範例，請參閱[搭配使用 Amazon Glacier 與 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html)。

此入門練習提供 Java 和 C\$1 程式碼範例，供您上傳和下載封存。入門練習的最後一節提供步驟，可讓您進一步了解 Amazon Glacier 的開發人員體驗。

**Topics**
+ [

# 步驟 1：開始使用 Amazon Glacier 之前
](getting-started-before-you-begin.md)
+ [

# 步驟 2：在 Amazon Glacier 中建立保存庫
](getting-started-create-vault.md)
+ [

# 步驟 3：將封存上傳至 Amazon Glacier 中的保存庫
](getting-started-upload-archive.md)
+ [

# 步驟 4：從 Amazon Glacier 中的保存庫下載封存
](getting-started-download-archive.md)
+ [

# 步驟 5：從 Amazon Glacier 中的保存庫刪除封存
](getting-started-delete-archive.md)
+ [

# 步驟 6：刪除 Amazon Glacier 中的保存庫
](getting-started-delete-vault.md)
+ [

# 接下來做些什麼？
](getting-started-where-do-i-go-next.md)

# 步驟 1：開始使用 Amazon Glacier 之前
步驟 1：開始之前

您必須先註冊 AWS 帳戶 （如果您還沒有），然後下載其中一個 AWS SDKs，才能開始此練習。如需詳細資訊，請參閱下節。

**Topics**
+ [

## 設定 AWS 帳戶 和管理員使用者
](#setup)
+ [

## 下載適當的 AWS SDK
](#getting-started-download-sdk)

## 設定 AWS 帳戶 和管理員使用者
設定 AWS 帳戶

如果您尚未這麼做，則必須註冊 ， AWS 帳戶 並在帳戶中建立管理員使用者。

若要完成設定，請遵循以下主題的指示。

### 設定 AWS 帳戶 並建立管理員使用者
設定 AWS 帳戶 並建立管理員使用者

#### 註冊 AWS


當您註冊 Amazon Web Services (AWS) 時，您的 AWS 帳戶 會自動註冊所有 服務 AWS，包括 Amazon Glacier。您只需支付實際使用服務的費用。如需 Amazon Glacier 用量費率的詳細資訊，請參閱 [Amazon Glacier 定價頁面](https://aws.amazon.com/s3/glacier/pricing/)。

如果您已有 AWS 帳戶，請跳至 [下載適當的 AWS SDK](#getting-started-download-sdk)。如果您沒有 AWS 帳戶，請使用下列程序建立一個。

如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

若要建立管理員使用者，請選擇下列其中一個選項。


****  

| 選擇一種管理管理員的方式 | 到 | 根據 | 您也可以 | 
| --- | --- | --- | --- | 
| 在 IAM Identity Center (建議) | 使用短期憑證存取 AWS。這與安全性最佳實務一致。有關最佳實務的資訊，請參閱 *IAM 使用者指南*中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp)。 | 請遵循 AWS IAM Identity Center 使用者指南的[入門](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html)中的說明。 | 透過在 AWS Command Line Interface 使用者指南中設定 [AWS CLI 以使用 來設定 AWS IAM Identity Center](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html)程式設計存取。 | 
| 在 IAM 中 (不建議使用) | 使用長期憑證存取 AWS。 | 請遵循《IAM 使用者指南》中[建立 IAM 使用者以進行緊急存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) 的指示。 | 請依照《IAM 使用者指南》中的[管理 IAM 使用者的存取金鑰](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html)設定以程式設計方式存取。 | 

## 下載適當的 AWS SDK


若要嘗試入門練習，您必須決定要使用哪種程式設計語言，然後為您的開發平台下載適當的 AWS SDK。

入門練習提供 Java 和 C\$1 範例。

### 下載 適用於 Java 的 AWS SDK


若要測試此開發人員指南中的 Java 範例，您需要 適用於 Java 的 AWS SDK。您有以下下載選項：
+ 如果您使用的是 Eclipse，您可以使用更新網站 https AWS Toolkit for Eclipse ：//[http://aws.amazon.com/eclipse/](https://aws.amazon.com/eclipse/) 下載並安裝 。如需詳細資訊，請參閱[AWS Toolkit for Eclipse](https://aws.amazon.com/eclipse/)。
+ 如果您使用任何其他 IDE 來建立應用程式，請下載 [適用於 Java 的 AWS SDK](https://aws.amazon.com/sdkforjava)。

### 下載 適用於 .NET 的 AWS SDK


若要測試此開發人員指南中的 C\$1 範例，您需要 適用於 .NET 的 AWS SDK。您有以下下載選項：
+ 如果您使用的是 Visual Studio，則可以同時安裝 適用於 .NET 的 AWS SDK 和 AWS Toolkit for Visual Studio。工具組提供可用於開發的 AWS Explorer for Visual Studio 和專案範本。若要下載 適用於 .NET 的 AWS SDK，請前往 https：//[http://aws.amazon.com/sdkfornet](https://aws.amazon.com/sdkfornet/)。根據預設，安裝指令碼會同時安裝 AWS SDK 和 AWS Toolkit for Visual Studio。若要進一步了解工具組，請參閱《[AWS Toolkit for Visual Studio 使用者指南](https://docs.aws.amazon.com/AWSToolkitVS/latest/UserGuide/)》。
+ 如果您使用任何其他 IDE 來建立應用程式，則可以使用前面步驟中提供的相同連結並僅安裝 適用於 .NET 的 AWS SDK。

# 步驟 2：在 Amazon Glacier 中建立保存庫
步驟 2：建立文件庫

文件庫是儲存封存的一種容器。您的第一個步驟是在其中一個支援的 中建立保存庫 AWS 區域。如需 Amazon Glacier AWS 區域 支援的 清單，請參閱《 *AWS 一般參考*》中的 [Amazon Glacier 端點和配額](https://docs.aws.amazon.com/general/latest/gr/glacier-service.html)。

您可以編寫程式或使用 Amazon Glacier 主控台建立保存庫。本節使用主控台來建立文件庫。

**建立文件庫**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/glacier/home](https://console.aws.amazon.com/glacier/home) 開啟 Amazon Glacier 主控台。

1. 在左側導覽窗格中，選擇**保存庫**。

1. 選擇**建立保存庫**。

   即會開啟**建立保存庫**頁面。

1. 在**選取區域**下， AWS 區域 從區域選擇器中選取 。保存庫將位於您所選的區域中。

1. 在**保存庫名稱**中，輸入保存庫的名稱。

   以下是保存庫命名要求：
   + 保存庫名稱在建立保存庫 AWS 區域 的 AWS 帳戶 和 中必須是唯一的。
   + 保存庫名稱長度必須介於 1 到 255 個字元之間。
   + 保存庫名稱只能包含下列字元：**a-z**、**A-Z**、**0-9**、**\$1** (底線)、**-** (連字號) 和 **.** (句號)。

1. 在**事件通知**下，若要在工作完成時開啟或關閉保存庫上的通知，請選擇以下其中一個設定：
   + **關閉通知**：通知會在指定的工作完成時關閉，且不會將通知傳送至 Amazon Simple Notification Service (Amazon SNS) 主題。
   + **開啟通知**：當指定的工作完成時，通知會開啟，並會將通知傳送至提供的 Amazon SNS 主題。

     如果您選擇**開啟通知**，請參閱[使用 Amazon Glacier 主控台設定保存庫通知](https://docs.aws.amazon.com/amazonglacier/latest/dev/configuring-notifications-console.html)。

1. 如果 AWS 區域 和保存庫名稱正確，請選擇**建立保存庫**。

您的新保存庫現在已列在 Amazon Glacier 主控台的保存**庫**頁面上。

# 步驟 3：將封存上傳至 Amazon Glacier 中的保存庫
步驟 3：將存檔上傳至文件庫

在此步驟中，將範例封存上傳到在前面步驟中所建立的保存庫中 (請參閱 [步驟 2：在 Amazon Glacier 中建立保存庫](getting-started-create-vault.md))。根據所使用的開發平台，選擇本節結尾的其中一個連結。

**重要**  
任何封存作業 (例如上傳、下載或刪除) 都要求您使用 AWS Command Line Interface (CLI) 或撰寫程式碼。沒有主控台支援封存操作。例如，若要上傳資料，例如相片、影片和其他文件，您必須使用 AWS CLI 或編寫程式碼來提出請求，方法是直接使用 REST API 或使用 AWS SDKs。  
若要安裝 AWS CLI，請參閱 [AWS Command Line Interface](https://aws.amazon.com/cli/)。如需搭配 使用 Amazon Glacier 的詳細資訊 AWS CLI，請參閱 [AWS CLI Amazon Glacier 的參考](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)。如需使用 AWS CLI 將封存上傳至 Amazon Glacier 的範例，請參閱[搭配使用 Amazon Glacier 與 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html)。

封存是存放在保存庫中的任何物件 (如相片、影片或文件)。存檔是 Amazon Glacier 中儲存體的基本單位。您可以在單一請求中上傳封存。對於大型封存，Amazon Glacier 提供分段上傳 API 操作，可讓您分段上傳封存。

在此入門部分，您在單一請求中上傳範例封存。本練習中，指定一個較小的檔案。對於較大的檔案，分段上傳是合適的。如需詳細資訊，請參閱[上傳分段中的大型封存 (分段上傳)](uploading-archive-mpu.md)。

**Topics**
+ [

# 使用 將封存上傳至 Amazon Glacier 中的保存庫 適用於 Java 的 AWS SDK
](getting-started-upload-archive-java.md)
+ [

# 使用 將封存上傳至 Amazon Glacier 中的保存庫 適用於 .NET 的 AWS SDK
](getting-started-upload-archive-dotnet.md)

# 使用 將封存上傳至 Amazon Glacier 中的保存庫 適用於 Java 的 AWS SDK
使用 Java 上傳封存

下列 Java 程式碼範例使用 的高階 API， 適用於 Java 的 AWS SDK 將範例封存上傳至保存庫。在程式碼範例中，請注意下列事項：
+ 範例會建立 `AmazonGlacierClient` 類別的執行個體。
+ 此範例使用 適用於 Java 的 AWS SDK高階 API 的 `ArchiveTransferManager` 類別的 `upload` API 作業。
+ 此範例使用美國西部 (奧勒岡) 區域 (`us-west-2`)。

如需執行此範例的逐步說明，請參閱 [使用 Eclipse 執行 Amazon Glacier 的 Java 範例](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java)。您必須如所示，使用要更新之封存檔的名稱更新程式碼。

**注意**  
Amazon Glacier 會保留保存庫中所有封存的庫存。當您上傳下列範例中的存檔時，它將不會顯示管理主控台的文件庫中，直到文件庫清查已更新。此更新通常一天執行一次。

**SDK for Java 2.x**  
 GitHub 上提供更多範例。尋找完整範例，並了解如何在 [AWS 程式碼範例儲存庫](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/glacier#code-examples)中設定和執行。

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.glacier.GlacierClient;
import software.amazon.awssdk.services.glacier.model.UploadArchiveRequest;
import software.amazon.awssdk.services.glacier.model.UploadArchiveResponse;
import software.amazon.awssdk.services.glacier.model.GlacierException;
import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.FileInputStream;
import java.io.IOException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class UploadArchive {

    static final int ONE_MB = 1024 * 1024;

    public static void main(String[] args) {
        final String usage = """

                Usage:   <strPath> <vaultName>\s

                Where:
                   strPath - The path to the archive to upload (for example, C:\\AWS\\test.pdf).
                   vaultName - The name of the vault.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String strPath = args[0];
        String vaultName = args[1];
        File myFile = new File(strPath);
        Path path = Paths.get(strPath);
        GlacierClient glacier = GlacierClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String archiveId = uploadContent(glacier, path, vaultName, myFile);
        System.out.println("The ID of the archived item is " + archiveId);
        glacier.close();
    }

    public static String uploadContent(GlacierClient glacier, Path path, String vaultName, File myFile) {
        // Get an SHA-256 tree hash value.
        String checkVal = computeSHA256(myFile);
        try {
            UploadArchiveRequest uploadRequest = UploadArchiveRequest.builder()
                    .vaultName(vaultName)
                    .checksum(checkVal)
                    .build();

            UploadArchiveResponse res = glacier.uploadArchive(uploadRequest, path);
            return res.archiveId();

        } catch (GlacierException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }

    private static String computeSHA256(File inputFile) {
        try {
            byte[] treeHash = computeSHA256TreeHash(inputFile);
            System.out.printf("SHA-256 tree hash = %s\n", toHex(treeHash));
            return toHex(treeHash);

        } catch (IOException ioe) {
            System.err.format("Exception when reading from file %s: %s", inputFile, ioe.getMessage());
            System.exit(-1);

        } catch (NoSuchAlgorithmException nsae) {
            System.err.format("Cannot locate MessageDigest algorithm for SHA-256: %s", nsae.getMessage());
            System.exit(-1);
        }
        return "";
    }

    public static byte[] computeSHA256TreeHash(File inputFile) throws IOException,
            NoSuchAlgorithmException {

        byte[][] chunkSHA256Hashes = getChunkSHA256Hashes(inputFile);
        return computeSHA256TreeHash(chunkSHA256Hashes);
    }

    /**
     * Computes an SHA256 checksum for each 1 MB chunk of the input file. This
     * includes the checksum for the last chunk, even if it's smaller than 1 MB.
     */
    public static byte[][] getChunkSHA256Hashes(File file) throws IOException,
            NoSuchAlgorithmException {

        MessageDigest md = MessageDigest.getInstance("SHA-256");
        long numChunks = file.length() / ONE_MB;
        if (file.length() % ONE_MB > 0) {
            numChunks++;
        }

        if (numChunks == 0) {
            return new byte[][] { md.digest() };
        }

        byte[][] chunkSHA256Hashes = new byte[(int) numChunks][];
        FileInputStream fileStream = null;

        try {
            fileStream = new FileInputStream(file);
            byte[] buff = new byte[ONE_MB];

            int bytesRead;
            int idx = 0;

            while ((bytesRead = fileStream.read(buff, 0, ONE_MB)) > 0) {
                md.reset();
                md.update(buff, 0, bytesRead);
                chunkSHA256Hashes[idx++] = md.digest();
            }

            return chunkSHA256Hashes;

        } finally {
            if (fileStream != null) {
                try {
                    fileStream.close();
                } catch (IOException ioe) {
                    System.err.printf("Exception while closing %s.\n %s", file.getName(),
                            ioe.getMessage());
                }
            }
        }
    }

    /**
     * Computes the SHA-256 tree hash for the passed array of 1 MB chunk
     * checksums.
     */
    public static byte[] computeSHA256TreeHash(byte[][] chunkSHA256Hashes)
            throws NoSuchAlgorithmException {

        MessageDigest md = MessageDigest.getInstance("SHA-256");
        byte[][] prevLvlHashes = chunkSHA256Hashes;
        while (prevLvlHashes.length > 1) {
            int len = prevLvlHashes.length / 2;
            if (prevLvlHashes.length % 2 != 0) {
                len++;
            }

            byte[][] currLvlHashes = new byte[len][];
            int j = 0;
            for (int i = 0; i < prevLvlHashes.length; i = i + 2, j++) {

                // If there are at least two elements remaining.
                if (prevLvlHashes.length - i > 1) {

                    // Calculate a digest of the concatenated nodes.
                    md.reset();
                    md.update(prevLvlHashes[i]);
                    md.update(prevLvlHashes[i + 1]);
                    currLvlHashes[j] = md.digest();

                } else { // Take care of the remaining odd chunk
                    currLvlHashes[j] = prevLvlHashes[i];
                }
            }

            prevLvlHashes = currLvlHashes;
        }

        return prevLvlHashes[0];
    }

    /**
     * Returns the hexadecimal representation of the input byte array
     */
    public static String toHex(byte[] data) {
        StringBuilder sb = new StringBuilder(data.length * 2);
        for (byte datum : data) {
            String hex = Integer.toHexString(datum & 0xFF);

            if (hex.length() == 1) {
                // Append leading zero.
                sb.append("0");
            }
            sb.append(hex);
        }
        return sb.toString().toLowerCase();
    }
}
```
+  如需 API 的詳細資訊，請參閱《*AWS SDK for Java 2.x API 參考*》的 [UploadArchive](https://docs.aws.amazon.com/goto/SdkForJavaV2/glacier-2012-06-01/UploadArchive)。

# 使用 將封存上傳至 Amazon Glacier 中的保存庫 適用於 .NET 的 AWS SDK
使用 .NET 上傳封存

下列 C\$1 程式碼範例使用 的高階 API， 適用於 .NET 的 AWS SDK 將範例封存上傳至保存庫。在程式碼範例中，請注意下列事項：

 
+ 此範例會為指定的 Amazon Glacier 區域端點建立 `ArchiveTransferManager`類別的執行個體。
+ 此程式碼範例使用美國西部 (奧勒岡) 區域 (`us-west-2`)。
+ 本範例使用 `ArchiveTransferManager` 類別的 `Upload` API 作業以上傳封存。對於小型封存，此操作會將封存直接上傳至 Amazon Glacier。對於較大的封存，如果在將資料串流至 Amazon Glacier 時遇到任何錯誤，此操作會使用 Amazon Glacier 中的分段上傳 API 操作將上傳分割為多個部分，以獲得更好的錯誤復原。

如需如何執行下列範例的逐步說明，請參閱 [執行程式碼範例](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet)。您必須更新程式碼，如所示的保存庫名稱和要上傳的封存檔案的名稱。

**注意**  
Amazon Glacier 會保留保存庫中所有封存的庫存。當您上傳下列範例中的封存時，直到保存庫庫存更新前，封存都不會顯示在管理主控台的保存庫中。此更新通常一天執行一次。

**Example — 使用 的高階 API 上傳封存 適用於 .NET 的 AWS SDK**  <a name="GS_ExampleUploadArchiveDotNet"></a>

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
    class ArchiveUploadHighLevel_GettingStarted
    {
        static string vaultName = "examplevault";
        static string archiveToUpload = "*** Provide file name (with full path) to upload ***";

        public static void Main(string[] args)
        {
            try
            {
                var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
                // Upload an archive.
                string archiveId = manager.Upload(vaultName, "getting started archive test", archiveToUpload).ArchiveId;
                Console.WriteLine("Copy and save the following Archive ID for the next step."); 
                Console.WriteLine("Archive ID: {0}", archiveId);
                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();
        }
    }
}
```

# 步驟 4：從 Amazon Glacier 中的保存庫下載封存
步驟 4：從文件庫下載封存

在此步驟中，您將下載之前在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳的範例封存。

 

**重要**  
Amazon Glacier 會提供主控台。不過，上傳、下載或刪除等任何封存操作都需要您使用 AWS Command Line Interface (CLI) 或寫入程式碼。沒有主控台支援封存操作。例如，若要上傳資料，例如相片、影片和其他文件，您必須使用 AWS CLI 或編寫程式碼來提出請求，方法是直接使用 REST API 或使用 AWS SDKs。  
若要安裝 AWS CLI，請參閱 [AWS Command Line Interface](https://aws.amazon.com/cli/)。如需搭配 使用 Amazon Glacier 的詳細資訊 AWS CLI，請參閱 [AWS CLI Amazon Glacier 的參考](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)。如需使用 AWS CLI 將封存上傳至 Amazon Glacier 的範例，請參閱[搭配使用 Amazon Glacier 與 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html)。

一般而言，從 Amazon Glacier 擷取您的資料需要兩個步驟：

1. 啟動擷取任務。

1. 工作完成後，下載資料的位元組。

若要從 Amazon Glacier 擷取封存，您必須先啟動任務。在工作完成後下載資料。如需封存擷取的詳細資訊，請參閱 [擷取 Amazon Glacier Archives](downloading-an-archive-two-steps.md)。

請求的存取時間取決於您選擇的擷取選項：快速、標準或大量擷取。用於規模幾乎最大的封存 (250 MB 以上) 時，使用快速擷取所存取的資料，通常會在 1-5 分鐘內即可使用。使用標準擷取而擷取的封存通常在 3-5 小時之間即可使用。大量擷取通常會於 5-12 小時內即可使用。如需各種擷取選項的詳細資訊，請參閱 [Amazon Glacier 常見問答集](https://aws.amazon.com/glacier/faqs/#Data-retrievals)。如需資料擷取費用的資訊，請參閱 [Amazon Glacier 定價頁面](https://aws.amazon.com/s3/glacier/pricing/)。

下列主題中顯示的程式碼範例啟動工作，請等待其完成，然後下載封存的資料。

**Topics**
+ [

# 使用 從 Amazon Glacier 中的保存庫下載封存 適用於 Java 的 AWS SDK
](getting-started-download-archive-java.md)
+ [

# 使用 從 Amazon Glacier 中的保存庫下載封存 適用於 .NET 的 AWS SDK
](getting-started-download-archive-dotnet.md)

# 使用 從 Amazon Glacier 中的保存庫下載封存 適用於 Java 的 AWS SDK
使用 Java 下載封存

下列 Java 程式碼範例使用 的高階 API 適用於 Java 的 AWS SDK 來下載您在上一個步驟中上傳的封存。在程式碼範例中，請注意下列事項：
+ 範例會建立 `AmazonGlacierClient` 類別的執行個體。
+ 此程式碼使用美國西部 (奧勒岡) 區域 (`us-west-2`) 比對在 [步驟 2：在 Amazon Glacier 中建立保存庫](getting-started-create-vault.md) 中建立保存庫的位置。
+ 此範例使用 適用於 Java 的 AWS SDK高階 API 的 `ArchiveTransferManager` 類別的 `download` API 作業。此範例會建立 Amazon Simple Notification Service (Amazon SNS) 主題，以及訂閱該主題的 Amazon Simple Queue Service (Amazon SQS) 佇列。如果您依照 中的指示建立 AWS Identity and Access Management (IAM) 管理員使用者[步驟 1：開始使用 Amazon Glacier 之前](getting-started-before-you-begin.md)，則您的使用者具有建立和使用 Amazon SNS 主題和 Amazon SQS 佇列的必要 IAM 許可。

如需執行此範例的逐步說明，請參閱 [使用 Eclipse 執行 Amazon Glacier 的 Java 範例](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java)。您需要按照在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳之檔案的封存 ID 來更新程式碼。

**Example — 使用 下載封存 適用於 Java 的 AWS SDK**  <a name="GS_ExampleDownloadArchiveJava"></a>

```
import java.io.File;
import java.io.IOException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sqs.AmazonSQSClient;

public class AmazonGlacierDownloadArchive_GettingStarted {
    public static String vaultName = "examplevault";
    public static String archiveId = "*** provide archive ID ***";
    public static String downloadFilePath  = "*** provide location to download archive ***";
    
    public static AmazonGlacierClient glacierClient;
    public static AmazonSQSClient sqsClient;
    public static AmazonSNSClient snsClient;
    
    public static void main(String[] args) throws IOException {
        
        
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();
    	
        glacierClient = new AmazonGlacierClient(credentials);        
        sqsClient = new AmazonSQSClient(credentials);
        snsClient = new AmazonSNSClient(credentials);
        
        glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com");
        sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com");
        snsClient.setEndpoint("sns.us-west-2.amazonaws.com");

        try {
            ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);
            
            atm.download(vaultName, archiveId, new File(downloadFilePath));
            
        } catch (Exception e)
        {
            System.err.println(e);
        }
    }
}
```

# 使用 從 Amazon Glacier 中的保存庫下載封存 適用於 .NET 的 AWS SDK
使用 .NET 下載封存

下列 C\$1 程式碼範例使用 的高階 API 適用於 .NET 的 AWS SDK 來下載您先前在 中上傳的封存[使用 將封存上傳至 Amazon Glacier 中的保存庫 適用於 .NET 的 AWS SDK](getting-started-upload-archive-dotnet.md)。在程式碼範例中，請注意下列事項：

 
+ 此範例會為指定的 Amazon Glacier 區域端點建立 `ArchiveTransferManager`類別的執行個體。
+ 此程式碼範例使用美國西部 (奧勒岡) 區域 (`us-west-2`)，比對之前在 [步驟 2：在 Amazon Glacier 中建立保存庫](getting-started-create-vault.md) 中建立保存庫的位置。
+ 本範例使用 `ArchiveTransferManager` 類別的 `Download` API 作業以下載封存。此範例會建立 Amazon Simple Notification Service (Amazon SNS) 主題，以及訂閱該主題的 Amazon Simple Queue Service (Amazon SQS) 佇列。如果您依照 中的指示建立 AWS Identity and Access Management (IAM) 管理員使用者[步驟 1：開始使用 Amazon Glacier 之前](getting-started-before-you-begin.md)，則您的使用者具有建立和使用 Amazon SNS 主題和 Amazon SQS 佇列的必要 IAM 許可。
+ 此範例接著啟動封存擷取任務，輪詢佇列以使封存可用。封存可用時，就會開始下載。如需封存擷取時間的詳細資訊，請參閱 [封存擷取選項](downloading-an-archive-two-steps.md#api-downloading-an-archive-two-steps-retrieval-options)。

如需執行此範例的逐步說明，請參閱 [執行程式碼範例](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet)。您需要按照在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳之檔案的封存 ID 來更新程式碼。

**Example — 使用 的高階 API 下載封存 適用於 .NET 的 AWS SDK**  <a name="GS_ExampleDownloadArchiveDotNet"></a>

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.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);
            }
        }
    }
}
```

# 步驟 5：從 Amazon Glacier 中的保存庫刪除封存
步驟 5：從文件庫刪除封存

在此步驟中，您將刪除在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳的範例封存。

**重要**  
您無法使用 Amazon Glacier 主控台刪除封存。任何封存操作，例如上傳、下載或刪除，都需要您使用 AWS Command Line Interface (CLI) 或寫入程式碼。若要上傳資料，例如相片、影片和其他文件，您必須直接使用 REST API AWS CLI 或使用 AWS SDKs，使用 或 撰寫程式碼來提出請求。  
若要安裝 AWS CLI，請參閱 [AWS Command Line Interface](https://aws.amazon.com/cli/)。如需搭配 使用 Amazon Glacier 的詳細資訊 AWS CLI，請參閱 [AWS CLI Amazon Glacier 的參考](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html)。如需使用 AWS CLI 將封存上傳至 Amazon Glacier 的範例，請參閱[搭配使用 Amazon Glacier 與 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html)。

刪除範例封存檔，請遵循下列其中一個開發套件或 AWS CLI：
+ [使用 從 Amazon Glacier 中的保存庫刪除封存 適用於 Java 的 AWS SDK](getting-started-delete-archive-java.md)
+ [使用 從 Amazon Glacier 中的保存庫刪除封存 適用於 .NET 的 AWS SDK](getting-started-delete-archive-dotnet.md)
+ [使用 在 Amazon Glacier 中刪除封存 AWS CLI](getting-started-delete-archive-cli.md)

## 相關章節


 
+ [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md)
+ [在 Amazon Glacier 中刪除封存](deleting-an-archive.md)

# 使用 從 Amazon Glacier 中的保存庫刪除封存 適用於 Java 的 AWS SDK
使用 Java 刪除封存

下列程式碼範例使用 適用於 Java 的 AWS SDK 刪除封存。在程式碼中，請注意下列事項：

 
+ `DeleteArchiveRequest` 物件描述刪除請求，包括封存歸檔所在的保存庫名稱和封存 ID。
+ `deleteArchive` API 操作會將請求傳送至 Amazon Glacier 以刪除封存。
+ 此範例使用美國西部 (奧勒岡) 區域 (`us-west-2`)。

如需執行此範例的逐步說明，請參閱 [使用 Eclipse 執行 Amazon Glacier 的 Java 範例](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java)。您需要按照在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳之檔案的封存 ID 來更新程式碼。

**Example — 使用 刪除封存 適用於 Java 的 AWS SDK**  <a name="GS_ExampleDeleteArchiveJava"></a>

```
import java.io.IOException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.model.DeleteArchiveRequest;

public class AmazonGlacierDeleteArchive_GettingStarted {

    public static String vaultName = "examplevault";
    public static String archiveId = "*** provide archive ID***";
    public static AmazonGlacierClient client;
    
    public static void main(String[] args) throws IOException {
        
    	
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();

        client = new AmazonGlacierClient(credentials);
        client.setEndpoint("https://glacier.us-west-2.amazonaws.com/");        

        try {

            // Delete the archive.
            client.deleteArchive(new DeleteArchiveRequest()
                .withVaultName(vaultName)
                .withArchiveId(archiveId));
            
            System.out.println("Deleted archive successfully.");
            
        } catch (Exception e) {
            System.err.println("Archive not deleted.");
            System.err.println(e);
        }
    }
}
```

# 使用 從 Amazon Glacier 中的保存庫刪除封存 適用於 .NET 的 AWS SDK
使用 .NET 刪除封存

下列 C\$1 程式碼範例使用 的高階 API 適用於 .NET 的 AWS SDK 來刪除您在上一個步驟中上傳的封存。在程式碼範例中，請注意下列事項：
+ 此範例會為指定的 Amazon Glacier 區域端點建立 `ArchiveTransferManager`類別的執行個體。
+ 此程式碼範例使用美國西部 (奧勒岡) 區域 (`us-west-2`)。
+ 此範例使用所提供 `ArchiveTransferManager` 類別的 `Delete` API 作業作為 適用於 .NET 的 AWS SDK的高階 API。

如需執行此範例的逐步說明，請參閱 [執行程式碼範例](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet)。您需要按照在 [步驟 3：將封存上傳至 Amazon Glacier 中的保存庫](getting-started-upload-archive.md) 中上傳之檔案的封存 ID 來更新程式碼。

**Example — 使用 的高階 API 刪除封存 適用於 .NET 的 AWS SDK**  <a name="GS_ExampleDeleteArchiveDotNet"></a>

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
  class ArchiveDeleteHighLevel_GettingStarted
  {
    static string vaultName = "examplevault";
    static string archiveId = "*** Provide archive ID ***";

    public static void Main(string[] args)
    {
      try
      {
        var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
        manager.DeleteArchive(vaultName, archiveId);
      }
      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();
    }
  }
}
```

# 使用 在 Amazon Glacier 中刪除封存 AWS CLI
使用 刪除封存 AWS CLI

您可以使用 AWS Command Line Interface () 刪除 Amazon Glacier 中的封存AWS CLI。

**Topics**
+ [

## （先決條件） 設定 AWS CLI
](#Creating-Vaults-CLI-Setup)
+ [

## 範例：使用 刪除封存 AWS CLI
](#getting-started-Deleting-Archives-CLI-Implementation)

## （先決條件） 設定 AWS CLI


1. 下載和設定 AWS CLI。如需相關指示，請參閱《AWS Command Line Interface 使用者指南》**中的下列主題：

    [安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) 

   [設定 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. 在命令提示中輸入下列命令來驗證您的 AWS CLI 設定。這些命令不會明確提供登入資料，因此會使用預設描述檔的登入資料。
   + 嘗試使用幫助命令。

     ```
     aws help
     ```
   + 若要取得已設定帳戶上的 Amazon Glacier 保存庫清單，請使用 `list-vaults`命令。將 *123456789012* 取代為您的 AWS 帳戶 ID。

     ```
     aws glacier list-vaults --account-id 123456789012
     ```
   + 若要查看 目前的組態資料 AWS CLI，請使用 `aws configure list`命令。

     ```
     aws configure list
     ```

## 範例：使用 刪除封存 AWS CLI


1. 使用 `initiate-job` 命令啟動清查擷取任務。如需 `initiate-job` 命令的詳細資訊，請參閱[啟動工作](https://docs.aws.amazon.com/amazonglacier/latest/dev/api-initiate-job-post.html)。

   ```
   aws glacier initiate-job --vault-name awsexamplevault --account-id 111122223333 --job-parameters "{\"Type\": \"inventory-retrieval\"}"
   ```

    預期的輸出結果：

   ```
   {
       "location": "/111122223333/vaults/awsexamplevault/jobs/*** jobid ***", 
       "jobId": "*** jobid ***"
   }
   ```

1. 使用 `describe-job` 命令檢查先前擷取工作的狀態。如需有關 `describe-job` 命令的詳細資訊，請參閱[描述工作](https://docs.aws.amazon.com/amazonglacier/latest/dev/api-describe-job-get.html)。

   ```
   aws glacier describe-job --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid ***
   ```

    預期的輸出結果：

   ```
   {
       "InventoryRetrievalParameters": {
           "Format": "JSON"
       }, 
       "VaultARN": "*** vault arn ***", 
       "Completed": false, 
       "JobId": "*** jobid ***", 
       "Action": "InventoryRetrieval", 
       "CreationDate": "*** job creation date ***", 
       "StatusCode": "InProgress"
   }
   ```

1. 等候工作完成。

   您必須等到任務輸出準備好供您下載。如果您在保存庫上設定通知組態，或在啟動任務時指定 Amazon Simple Notification Service (Amazon SNS) 主題，Amazon Glacier 會在任務完成後傳送訊息至主題。

   您可以為文件庫中的特定事件設定通知組態。如需詳細資訊，請參閱[在 Amazon Glacier 中設定保存庫通知](configuring-notifications.md)。每當發生特定事件時，Amazon Glacier 就會傳送訊息至指定的 Amazon SNS 主題。

1. 工作完成時，請使用 `get-job-output` 命令將擷取工作下載至檔案 `output.json`。如需 `get-job-output` 命令的詳細資訊，請參閱[取得工作輸出](https://docs.aws.amazon.com/amazonglacier/latest/dev/api-job-output-get.html)。

   ```
   aws glacier get-job-output --vault-name awsexamplevault --account-id 111122223333 --job-id *** jobid *** output.json
   ```

   這個命令會產生一個包含下列欄位的檔案。

   ```
   {
   "VaultARN":"arn:aws:glacier:region:111122223333:vaults/awsexamplevault",
   "InventoryDate":""*** job completion date ***"",
   "ArchiveList":[{
   {"ArchiveId":""*** archiveid ***"",
   "ArchiveDescription":"*** archive description (if set) ***",
   "CreationDate":""*** archive creation date ***"",
   "Size":""*** archive size (in bytes) ***"",
   "SHA256TreeHash":"*** archive hash ***"
   }],
   "ArchiveId": 123456789
   
   }
   ```

1. 使用 `delete-archive` 命令從文件庫中刪除每個存檔，直到沒有存檔為止。

   ```
   aws glacier delete-archive --vault-name awsexamplevault --account-id 111122223333 --archive-id="*** archiveid ***"
   ```

 如需有關 `delete-archive` 命令的詳細資訊，請參閱[刪除封存](https://docs.aws.amazon.com/amazonglacier/latest/dev/api-archive-delete.html)。

# 步驟 6：刪除 Amazon Glacier 中的保存庫
步驟 6：刪除文件庫

文件庫是儲存封存的一種容器。若要刪除 Amazon Glacier 保存庫，您必須先從 Amazon Glacier 計算的最後一個庫存中刪除保存庫中的所有現有封存。

您可以編寫程式或使用 Amazon Glacier 主控台刪除保存庫。如需以程式設計方式刪除文件庫的資訊，請參閱 [在 Amazon Glacier 中刪除保存庫](deleting-vaults.md)。

**重要**  
如果您在最近 24 小時內將封存上傳至保存庫，或從保存庫中刪除封存，您必須等到最後一個保存庫庫存更新，才能反映最新資訊。Amazon Glacier 會每 24 小時定期為每個保存庫準備好庫存。

**刪除空白文件庫的步驟**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/glacier/home](https://console.aws.amazon.com/glacier/home) 開啟 Amazon Glacier 主控台。

1. 從**選取區域**功能表中，選擇您要刪除之保存庫 AWS 區域 的 。

   在此入門練習中，範例保存庫位於美國西部 (奧勒岡) 區域。

1. 選取您要刪除之空白保存庫旁的選項按鈕。如果保存庫不是空白，必須先刪除所有封存，然後再刪除保存庫。如需詳細資訊，請參閱[在 Amazon Glacier 中刪除封存](deleting-an-archive.md)。
**重要**  
刪除保存庫無法復原。

1. 選擇 **刪除**。

1. **刪除保存庫**對話方塊即會出現。選擇 **刪除**。

**刪除非空白文件庫的步驟**

1. 若要刪除非空白保存庫，您必須先刪除所有現有的封存，然後再刪除保存庫。您可以使用 REST API、 適用於 Java 的 AWS SDK、 適用於 .NET 的 AWS SDK 或 撰寫程式碼來提出刪除封存請求 AWS CLI。如需刪除封存的資訊，請參閱 [步驟 5：從 Amazon Glacier 中的保存庫刪除封存](getting-started-delete-archive.md)。

1. 保存庫為空之後，請依照上述程序中的步驟刪除空的保存庫。

# 接下來做些什麼？
接下來做些什麼？

現在您已嘗試了入門練習，您可以探索下列各節，以進一步了解 Amazon Glacier。

 
+ [在 Amazon Glacier 中使用保存庫](working-with-vaults.md)
+ [在 Amazon Glacier 中使用封存](working-with-archives.md)