アーカイブバケットの作成と使用

最終更新日: Dec 28, 2017

OSS は 3 つのストレージタイプ を提供します。このドキュメントでは、アーカイブストレージクラスのバケットの作成および使用方法について説明します。

アーカイブバケットの作成

アーカイブバケットは、コンソール、API/SDK、コマンドラインツールから作成できます。

コンソールから作成

コンソールにアーカイブバケットを作成するには、次の図に示すように ストレージクラス として アーカイブストレージ を選択します。
Create Archive bucket

API/SDK から作成

Java SDK の例:

  1. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  2. CreateBucketRequest createBucketRequest=new CreateBucketRequest(bucketName);
  3. // Set the bucket ACL to public-read. The default ACL policy is private-read-write. createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
  4. // Set the bucket type as Archive. The default type is Standard.
  5. createBucketRequest.setStorageClass(StorageClass.Archive);
  6. ossClient.createBucket(createBucketRequest);

createBucketRequest.setStorageClass(StorageClass.Archive); はバケットのストレージクラスを Archiveに設定するために使われます。

OSS コマンドラインツールから作成

OSSUtil の例:

  1. ./ossutil mb oss://[bucket name] --storage-class=Archive

[bucket name] はバケット名を示します。
パラメーター --storage-classArchive に指定してアーカイブバケットを作成します。

アーカイブバケットの使用

データのアップロード

アーカイブバケットは PUT Object/Multipart 2 つのアップロードモードをサポートしますが、APPEND 書き込みはサポートしていません。

PUT Object/Multipart に基づいて開発されたアップロード用アプリケーションは、アーカイブバケットを直接使用できます。

データのダウンロード

アーカイブバケットのデータ読み込みは、標準バケットと低頻度アクセスバケットとはいくつかの違いがあります。すべてのアーカイブされたデータは、読み取りの前に復元操作を介して読み取り可能な状態に復元する必要があります。復元操作には 1 分かかります。

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

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

コンソールから復元

Restore object

読み込みたいオブジェクトに対して復元操作を実行します。復元操作には 1 分かかります。操作中に、オブジェクトが復元中状態になります。
Restoring

API/SDK から復元

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

  1. ObjectMetadata objectMetadata = ossClient.getObjectMetadata(bucketName, key);
  2. // check whether the object is archive class
  3. StorageClass storageClass = objectMetadata.getObjectStorageClass();
  4. if (storageClass == StorageClass.Archive) {
  5. // restore object
  6. ossClient.restoreObject(bucketName, key);
  7. // wait for restore completed
  8. do {
  9. Thread.sleep(1000);
  10. objectMetadata = ossClient.getObjectMetadata(bucketName, key);
  11. } while (!objectMetadata.isRestoreCompleted());
  12. }
  13. // get restored object
  14. OSSObject ossObject = ossClient.getObject(bucketName, key);
  15. ossObject.getObjectContent().close();

OSS コマンドラインツールから復元

OSSUtil の例:

  1. ./ossutil restore oss://[Bucket name]/[Object name]

[Bucket name][Object name] は復元されるバケットとオブジェクトの名前です。