最近更新时间:2024-06-21 13:56:04
KS3标准存储适合频繁访问、有热点存在的各类音视频、图片、网站静态资源的数据,较低的延迟和较高的吞吐量性能的数据。
KS3低频存储用于保存不频繁访问但在需要时也要求快速访问的数据。
KS3归档存储(ACHIVE)适合需要长期保存(建议3个月以上)的归档数据,在存储周期内很少被访问,数据进入到可读取状态需要1分钟到10分钟的解冻时间。适合需要长期保存的档案数据、医疗影像、科学资料、影视素材。
用户可以在上传文件过程中,通过HTTP头指定存储类型;相应的,在下载文件过程中我们会通过HTTP响应头指示文件的存储类型。除此之外,在用户枚举文件时也会返回文件的存储类型信息。
您想采取某个特定存储类型来存储文件,您可以通过以下方式:
利用上传接口,指定请求头x-kss-storage-class
为STANDARD/ STANDARD_IA/ARCHIVE。
创建指定类型Bucket,上传Object时无需指定存储类型,即可按照默认Bucket的存储类型。
通过生命周期转化,设定存储类型转化规则,按照规则系统自动到期转化为归档存储类型
用户上传过程中,可以通过设置 x-kss-storage-class
头来指定存储类型。有效值为:STANDARD
、STANDARD_IA
、ARCHIVE
。对于无效的存储类型,KS3会拒绝本次请求。
上传文件时,当不指定请求头x-kss-storage-class
时,如果Bucket是归档类型,Object自动为归档类型,如果Bucket是非归档类型,Object自动为标准类型;如果指定Object 的x-kss-storageclass
则以用户指定为准,例如在非归档存储空间中,指定Object 的x-kss-storageclass
为ARCHIVE
时,则该文件为归档存储类型。
bucket类型 | x-kss-storage-class请求头 | 文件类型 |
---|---|---|
归档存储类型 | 不上传 | 归档类型 |
归档存储类型 | ARCHIVE | 归档类型 |
归档存储类型 | STANDARD | 标准类型 |
归档存储类型 | STANDARD_IA | 低频类型 |
非归档存储类型 | 不上传 | 标准类型 |
非归档存储类型 | STANDARD | 标准类型 |
非归档存储类型 | STANDARD_IA | 低频类型 |
非归档存储类型 | ARCHIVE | 归档类型 |
请求语法:
PUT /{ObjectKey} HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
x-kss-storage-class: {StorageClass}
注意:
SDK示例代码:
PutObjectRequest request = new PutObjectRequest(bucketName, key, file);
request.setStorageClass(StorageClass.StandardInfrequentAccess);
PutObjectResult result = client.putObject(request); // 假设已经合理初始化Ks3Client
用户可以在表单域中通过设置 x-kss-storage-class
域来指定存储类型。规则和Put Object上传文件一致。
用户可以在初始化分块上传时通过 x-kss-storage-class
请求头设置文件的存储类型。有效值为: STANDARD
、STANDARD_IA
、ARCHIVE
。规则和Put Object上传文件一致。对于无效的存储类型,KS3会拒绝本次请求。
请求语法:
POST /{ObjectKey}?uploads HTTP/1.1
Host: {BucketName}.{endpoint}
Date: {date}
Authorization: {SignatureValue}
x-kss-storage-class: {StorageClass}
SDK示例代码:
InitiateMultipartUploadRequest request = new InitiateMultipartUploadRequest(bucketName, key);
request.setStorageClass(StorageClass.StandardInfrequentAccess);
InitiateMultipartUploadResult result = client.initiateMultipartUpload(request); // 假设已经合理初始化Ks3Client
后续的所有分块上传操作(Upload Part、Complete、Abort)都不再接受
x-kss-storage-class
请求头。
对于复制文件,KS3支持重新指定存储类型。若不指定目的文件的存储类型,则按照目标存储的默认存储类型保存。如果复制源文件是归档存储文件,成功复制的前提是,源文件必须完成解冻,为可读状态。
对于复制分块,KS3目前不支持重新指定存储类型。目的文件的存储类型必须与源文件存储类型一致。
对于复制分块,KS3会忽略 x-kss-storage-class
请求头。
如果源文件存储类型与目的文件存储类型不一致,会报错。提示 InvalidStorageClass
。
用户下载文件时,如果文件是低频存储文件,则在响应头中会出现 x-kss-storage-class
头;标准存储文件下载时没有这个响应头;归档文件必须完成解冻,才能正常下载。
GetObjectRequest request = new GetObjectRequest(bucketName, key);
GetObjectResult result = client.getObject(request);
Ks3Object object = result.getObject();
object.getObjectContent();
Java SDK中,可以通过获取元信息来查看存储类型,示例代码如下:
HeadObjectRequest request = new HeadObjectRequest(bucketName, key);
HeadObjectResult result =client.headObject(request);
String storageClass = result.getObjectMetadata().getStorageClass();
对于标准存储文件,getStorageClass
返回 null
;对于低频存储文件,getStorageClass
返回 STANDARD_IA
;对于归档存储文件,getStorageClass
返回 ARCHIVE
。
用户获取某个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
。
用户在查看当前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
。
用户在列举某个分块上传已经上传的块时,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
。
纯净模式