OSS は、3 つのストレージクラスを提供しています。その中で、アーカイブストレージクラスは最低価格です。 ただし、アクセスする場合は、アーカイブされたデータを可読な状態に復元する必要があります。 このトピックでは、アーカイブストレージクラスのバケットを作成して使用する方法について説明します。3 つのストレージクラスの詳細については、ストレージクラスの概要を参照してください。

アーカイブバケットを作成する

コンソール、API/SDK、またはコマンドラインツールを使用してアーカイブバケットを作成することができます。

  • コンソールを使用してアーカイブバケットを作成する

    コンソールにアーカイブバケットを作成するには、「ストレージクラスのアーカイブ」を選択します。



  • API/SDK を使用してアーカイブバケットを作成する

    Java SDK を例に取ってみましょう。

    1. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);CreateBucketRequest createBucketRequest=new CreateBucketRequest(bucketName);// Set the bucket ACL to public-read. The default ACL policy is private-read-write. createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);// Set the storage class to Archive. The default storage class is Standard.createBucketRequest.setStorageClass(StorageClass.Archive);ossClient.createBucket(createBucketRequest);
    createBucketRequest.setStorageClass(StorageClass.Archive); 作成されたバケットのストレージクラスがアーカイブであることを示します。
  • OSS コマンドラインツールを使用してアーカイブバケットを作成する
    ossutil を例に取る:
    1. ./ossutil mb oss://[bucket name] storage-class=Archive
    [bucket name]を独自のバケットに置き換えます。—storage-classアーカイブに設定します。

アーカイブバケットを使用する

  • アーカイブバケットにデータをアップロードする

    アーカイブバケットは PutObject と MultipartUpload をサポートしますが、AppendObject はサポートしていません。PutObject と MultipartUpload によってアップロードされたオブジェクトは、アーカイブバケットに直接格納できます。

  • アーカイブバケットからデータをダウンロードする

    アーカイブバケットに格納されたオブジェクトにはリアルタイムでアクセスできません。 最初にリストア要求を開始し、オブジェクトが使用可能になるまで 1 分間待機する必要があります。

    アーカイブされたオブジェクトの復元プロセスは次のとおりです。 

    1. アーカイブされたオブジェクトは、最初はフリーズ状態です。
    2. リストア要求がサブミットされると、オブジェクトはリストア状態になります。
    3. 1 分後、オブジェクトは復元された状態になり、読み取ることができます。
    4. 復元された状態は、デフォルトでは 1 日間存続し、最大 7 日間まで延長することができます。 この期間が終了すると、オブジェクトはフリーズ状態に戻ります。

コンソール、API/SDK、またはコマンドラインツールを使用してアーカイブオブジェクトを復元することを選択できます。

  • コンソールを使用してアーカイブされたオブジェクトを復元する

    コンソールでアーカイブされたオブジェクトを復元するには、オブジェクトの [プレビュー] ページを入力し、[復元] をクリックします。 オブジェクトの復元には 1 分かかります。 このプロセス中、オブジェクトは復元状態にあります。



  • API/SDK を使用してアーカイブされたオブジェクトを復元する

    たとえば、Java SDK を使用します。 オブジェクトを復元するには、restoreObject メソッドを呼び出します。

    1. ObjectMetadata objectMetadata = ossClient.getObjectMetadata(bucketName, key);// check whether the object is archive classStorageClass storageClass = objectMetadata.getObjectStorageClass();if (storageClass == StorageClass.Archive) { // restore object ossClient.restoreObject(bucketName, key); // wait for restore completed do { Thread.sleep(1000); objectMetadata = ossClient.getObjectMetadata(bucketName, key); } while (! objectMetadata.isRestoreCompleted());// get restored objectOSSObject ossObject = ossClient.getObject(bucketName, key);ossObject.getObjectContent().close();
  • OSS コマンドラインツールを使用してアーカイブされたオブジェクトを復元する
    ossutil を例に取る:
    1. ./ossutil restore oss://[Bucket name]/[Object name]

    [Bucket name][Object name] を自分のバケットとオブジェクトに置き換えます。