ARCHIVE

最近更新时间:2019-01-14 10:10:59

归档存储


接口描述

KS3归档存储(ACHIVE)适合需要长期保存(建议3个月以上)的归档数据,在存储周期内很少被访问,数据进入到可读取状态需要1分钟到10分钟的解冻时间。适合需要长期保存的档案数据、医疗影像、科学资料、影视素材。

上传归档文件之前,需要创建一个归档Bucket,只能向归档Bucket上传归档文件。

上传接口

Put Object 上传归档文件

上传文件时,如果不指定请求头x-kss-storage-class,如果Bucket是归档类型,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型;如果x-kss-storageClassARCHIVE时,Bucket必须为归档类型,否则返回400;如果x-kss-storageClass不为ARCHIVE时,Bucket不能为归档类型,否则返回400。

bucket类型 x-kss-storage-class请求头 文件类型 状态码
归档存储类型 不上传 归档类型 200
归档存储类型 ARCHIVE 归档类型 200
归档存储类型 STANDAND 上传失败 400
归档存储类型 STANDARD_IA 上传失败 400
非归档存储类型 不上传 标准类型 200
非归档存储类型 STANDAND 标准类型 200
非归档存储类型 STANDARD_IA 低频类型 200
非归档存储类型 ARCHIVE 上传失败 400

请求语法:

PUT /{ObjectKey} HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
x-kss-storage-class: {StorageClass}

注意:

Post Object 上传文件

用户可以在表单域中通过设置 x-kss-storage-class 域来指定存储类型。规则和Put Object上传文件一致。

Initiate Multipart Upload 初始化分块上传

用户可以在初始化分块上传时通过 x-kss-storage-class 请求头设置文件的存储类型。 有效值为: STANDARDSTANDARD_IAARCHIVE。规则和Put Object上传文件一致。 对于无效的存储类型,KS3会拒绝本次请求。

请求语法:

POST /{ObjectKey}?uploads HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
x-kss-storage-class: {StorageClass}

注意:

后续的所有分块上传操作(Upload Part、Complete、Abort)都不再接受 x-kss-storage-class 请求头。

Put Object Copy 复制文件

对于复制文件,KS3目前不支持重新指定存储类型。目的文件的存储类型必须与源文件存储类型一致。 如果复制源文件是归档存储文件,则目的文件必须是存放在归档bucket中,如果设置了 x-kss-storage-class 请求头,则值必须为 ARCHIVE。 如果源文件存储类型与目的文件存储类型不一致,会报错。提示 InvalidStorageClass

Upload Part Copy 复制分块

对于复制分块,KS3目前不支持重新指定存储类型。目的文件的存储类型必须与源文件存储类型一致。 对于复制分块,KS3会忽略 x-kss-storage-class 请求头。 如果源文件存储类型与目的文件存储类型不一致,会报错。提示 InvalidStorageClass

下载接口

Get Object 下载文件

用户下载文件时,如果文件是低频存储文件,则在响应头中会出现 x-kss-storage-class 头;标准存储文件下载时没有这个响应头。

Java SDK中,可以通过获取元信息来查看存储类型,示例代码如下:

GetObjectRequest request = new GetObjectRequest(bucketName, key);
GetObjectResult result = client.getObject(request);
String storageClass = result.getObject().getObjectMetadata().getStorageClass();

对于标准存储文件,getStorageClass 返回 null;对于标准低频存储文件,getStorageClass 返回 STANDARD_IA;对于归档存储文件,getStorageClass 返回 ARCHIVE

枚举接口

Get Bucket 枚举bucket下的所有文件

用户获取某个Bucket下文件时,KS3会为每个文件返回其存储类型。

SDK示例代码:

ListObjectsRequest request = new ListObjectsRequest(bucketName);
ObjectListing listing = client.listObjects(request);
for (Ks3ObjectSummary summary : listing.getObjectSummaries()) {
    String storageClas = summary.getStorageClass();
}

对于标准存储文件,getStorageClass 返回 STANDARD;对于标准低频存储文件,getStorageClass 返回 STANDARD_IA;对于归档存储文件,getStorageClass 返回 ARCHIVE

List Multipart Uploads 查看bucket下的分块上传

用户在查看当前bucket下所有的分块上传请求时,KS3会为每个分块上传返回其存储类型。

SDK示例代码:

ListMultipartUploadsRequest request = new ListMultipartUploadsRequest(bucketName);
ListMultipartUploadsResult result = client.listMultipartUploads(request);
for (MultiPartUploadInfo uploadInfo : result.getUploads()) {
    String storageClass = uploadInfo.getStorageClass();
}

对于标准存储文件,getStorageClass 返回 STANDARD;对于标准低频存储文件,getStorageClass 返回 STANDARD_IA;对于归档存储文件,getStorageClass 返回 ARCHIVE

List Parts 查看已上传的块

用户在列举某个分块上传已经上传的块时,KS3会返回当前这次分块上传的存储类型。

SDK示例代码:

ListPartsRequest reqest = new ListPartsRequest(bucketName, key, result.getUploadId());
ListPartsResult result = client.listParts(reqest);
String storageClass = result.getStorageClass();

对于标准存储文件,getStorageClass 返回 STANDARD;对于标准低频存储文件,getStorageClass 返回 STANDARD_IA;对于归档存储文件,getStorageClass 返回 ARCHIVE

金山云,开启您的云计算之旅

立即注册