

 **이 페이지는 볼트와 2012년부터 원래 REST API를 사용하는 Amazon Glacier 서비스의 기존 고객만 사용할 수 있습니다.**

아카이브 스토리지 솔루션을 찾고 있다면 Amazon S3의 Amazon Glacier 스토리지 클래스, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive를 사용하는 것이 좋습니다. 이러한 스토리지 옵션에 대한 자세한 내용은 [Amazon Glacier 스토리지 클래스](https://aws.amazon.com/s3/storage-classes/glacier/)를 참조하세요.

Amazon Glacier(기존 독립 실행형 볼트 기반 서비스)는 더 이상 신규 고객을 받지 않습니다. Amazon Glacier는 데이터를 볼트에 저장하고 Amazon S3 및 Amazon S3 Glacier 스토리지 클래스와 구별되는 자체 API를 갖춘 독립 실행형 서비스입니다. 기존 데이터는 Amazon Glacier에서 무기한으로 안전하게 보관되며 액세스 가능합니다. 마이그레이션은 필요하지 않습니다. 저비용 장기 아카이브 스토리지의 경우는 [S3 버킷 기반 API, 전체 가용성, 저렴한 비용 및 서비스 통합을 통해 우수한 고객 경험을 제공하는 Amazon S3 Glacier 스토리지 클래스](https://aws.amazon.com/s3/storage-classes/glacier/)를 AWS 권장합니다. S3 APIs AWS 리전 AWS 향상된 기능을 원하는 경우 [Amazon Glacier 볼트에서 Amazon S3 Glacier 스토리지 클래스로 데이터를 전송하기 위한AWS 솔루션 지침](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)을 사용하여 Amazon S3 Glacier 스토리지 클래스로 마이그레이션하는 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 아카이브를 단일 작업으로 업로드 AWS SDK for Java
<a name="uploading-an-archive-single-op-using-java"></a>

Amazon SDK for Java에서 제공하는 [하이레벨 및 로우레벨 API](using-aws-sdk.md) 둘 모두는 아카이브를 업로드하는 방법을 제공합니다.

**Topics**
+ [의 상위 수준 API를 사용하여 아카이브 업로드 AWS SDK for Java](#uploading-an-archive-single-op-high-level-using-java)
+ [의 하위 수준 API를 사용하여 단일 작업으로 아카이브 업로드 AWS SDK for Java](#uploading-an-archive-single-op-low-level-using-java)

## 의 상위 수준 API를 사용하여 아카이브 업로드 AWS SDK for Java
<a name="uploading-an-archive-single-op-high-level-using-java"></a>

하이레벨 API의 `ArchiveTransferManager` 클래스는 아카이브를 볼트에 업로드하는 데 사용할 수 있는 `upload` 메서드를 제공합니다.

 

**참고**  
`upload` 메서드는 작든 크든 상관없이 모든 아카이브를 업로드하는 데 사용됩니다. 이 메서드는 업로드하는 아카이브 크기에 따라 아카이브를 단일 작업으로 업로드할지, 혹은 멀티파트 업로드 API를 사용해 아카이브를 여러 파트로 나누어 업로드할지 결정합니다.

### 예:의 상위 수준 API를 사용하여 아카이브 업로드 AWS SDK for Java
<a name="upload-archive-high-level-java-example"></a>

다음은 미국 서부(오레곤) 리전(`us-west-2`)의 볼트(`examplevault`)에 아카이브를 업로드하는 Java 코드 예시입니다. 지원되는 AWS 리전 및 엔드포인트 목록은 섹션을 참조하세요[Amazon Glacier 액세스](amazon-glacier-accessing.md).

이 예제의 실행 방법에 대한 단계별 지침은 [Eclipse를 사용하여 Amazon Glacier의 Java 예 실행](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java) 섹션을 참조하세요. 아래와 같이 업로드할 볼트 이름과 파일 이름을 사용해 코드를 업데이트해야 합니다.

**Example**  

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

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.glacier.transfer.UploadResult;


public class ArchiveUploadHighLevel {
    public static String vaultName = "*** provide vault name ***";
    public static String archiveToUpload = "*** provide name of file to upload ***";
    
    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 {
            ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials);
            
            UploadResult result = atm.upload(vaultName, "my archive " + (new Date()), new File(archiveToUpload));
            System.out.println("Archive ID: " + result.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println(e);
        }
    }
}
```

## 의 하위 수준 API를 사용하여 단일 작업으로 아카이브 업로드 AWS SDK for Java
<a name="uploading-an-archive-single-op-low-level-using-java"></a>

로우레벨 API는 모든 아카이브 작업에 필요한 메서드를 제공합니다. 다음은 AWS SDK for Java를 사용하여 아카이브를 업로드하는 단계입니다.

 

1. `AmazonGlacierClient` 클래스(클라이언트)의 인스턴스를 만듭니다.

   아카이브를 업로드할 AWS 리전을 지정해야 합니다. 이 클라이언트를 사용하여 수행하는 모든 작업은 해당 AWS 리전에 적용됩니다.

1. `UploadArchiveRequest` 클래스 인스턴스를 생성하여 요청 정보를 입력합니다.

   업로드할 데이터 외에도 페이로드의 체크섬(SHA256 트리-해시), 볼트 이름, 데이터의 내용 길이, 계정 ID를 입력해야 합니다.

   계정 ID를 입력하지 않는 경우에는 요청 서명을 위해 입력하는 자격 증명과 연결되어 있는 계정 ID로 간주합니다. 자세한 내용은 [Amazon Glacier AWS SDK for Java 에서 사용](using-aws-sdk-for-java.md) 단원을 참조하십시오.

1. 요청 객체를 파라미터로 입력하여 `uploadArchive` 메서드를 실행합니다.

   그러면 Amazon Glacier(Amazon Glacier)가 응답으로 새롭게 업로드된 아카이브의 ID를 반환합니다.

다음은 위에서 설명한 단계를 나타내는 Java 코드 조각입니다.

```
AmazonGlacierClient client;

UploadArchiveRequest request = new UploadArchiveRequest()
    .withVaultName("*** provide vault name ***")
    .withChecksum(checksum)
    .withBody(new ByteArrayInputStream(body))
    .withContentLength((long)body.length);

UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);

System.out.println("Location (includes ArchiveID): " + uploadArchiveResult.getLocation());
```

### 예:의 하위 수준 API를 사용하여 단일 작업으로 아카이브 업로드 AWS SDK for Java
<a name="uploding-single-archive-using-java-example"></a>

다음 Java 코드 예제에서는 AWS SDK for Java 를 사용하여 아카이브를 볼트()에 업로드합니다`examplevault`. 이 예제의 실행 방법에 대한 단계별 지침은 [Eclipse를 사용하여 Amazon Glacier의 Java 예 실행](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java) 섹션을 참조하세요. 아래와 같이 업로드할 볼트 이름과 파일 이름을 사용해 코드를 업데이트해야 합니다.

```
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.TreeHashGenerator;
import com.amazonaws.services.glacier.model.UploadArchiveRequest;
import com.amazonaws.services.glacier.model.UploadArchiveResult;
public class ArchiveUploadLowLevel {

    public static String vaultName = "*** provide vault name ****";
    public static String archiveFilePath = "*** provide to file upload ****";
    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-east-1.amazonaws.com/");

        try {
            // First open file and read.
            File file = new File(archiveFilePath);
            InputStream is = new FileInputStream(file); 
            byte[] body = new byte[(int) file.length()];
            is.read(body);
                                    
            // Send request.
            UploadArchiveRequest request = new UploadArchiveRequest()
                .withVaultName(vaultName)
                .withChecksum(TreeHashGenerator.calculateTreeHash(new File(archiveFilePath))) 
                .withBody(new ByteArrayInputStream(body))
                .withContentLength((long)body.length);
            
            UploadArchiveResult uploadArchiveResult = client.uploadArchive(request);
            
            System.out.println("ArchiveID: " + uploadArchiveResult.getArchiveId());
            
        } catch (Exception e)
        {
            System.err.println("Archive not uploaded.");
            System.err.println(e);
        }
    }
}
```