您可以通过控制台、API/SDK和命令行工具创建归档存储类型的存储空间。
控制台创建Archive类型的bucket,存储类型选择归档存储,如下图所示。
以Java SDK为例:
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
CreateBucketRequest createBucketRequest=new CreateBucketRequest(bucketName);
// 设置bucket权限为公共读,默认是私有读写 createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
// 设置bucket存储类型为归档类型,默认是标准类型
createBucketRequest.setStorageClass(StorageClass.Archive);
ossClient.createBucket(createBucketRequest);
createBucketRequest.setStorageClass(StorageClass.Archive);
即设置创建的bucket的存储类型为归档存储类型。
以OSSUtil为例:
./ossutil mb oss://[bucket name] --storage-class=Archive
[bucket name]
为需要创建的bucket名称。
指定--storage-class
的参数为Archive
,用来创建归档存储类型的bucket。
归档存储类型bucket支持PUT Object/Multipart两种上传方式,不支持APPEND追加写入。
基于PUT Object/Multipart开发的上传应用可以直接使用归档存储类型。
归档存储类型数据读取与标准存储类型和低频访问类型的方式有一些区别。所有存储的归档类型数据在读取前需要先执行restore操作解冻到可读取状态,解冻过程需要1分钟时间。
归档文件的状态变换过程如下:
对需要读取的文件,执行解冻操作,解冻过程预计花费1分钟。期间可以查询到object处于解冻中状态。
以Java SDK举例, 调用restoreObject方法进行object解冻:
ObjectMetadata objectMetadata = ossClient.getObjectMetadata(bucketName, key);
// check whether the object is archive class
StorageClass 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 object
OSSObject ossObject = ossClient.getObject(bucketName, key);
ossObject.getObjectContent().close();
以OSSUtil为例:
./ossutil restore oss://[Bucket name]/[Object name]
[Bucket name]
和[Object name]
为需要做解冻操作的bucket和object名称。
[2018-03-28 18:25:25]
扫一扫
凯铧科技
服务QQ
3287819116