Lindorm S3兼容协议提供了桶(Bucket)级别的压缩功能,可以在上传文件时对桶内的所有对象进行压缩。本文介绍如何使用S3兼容协议数据压缩功能。
前提条件
注意事项
设置压缩算法前已存在的历史对象在设置压缩算法后不会被压缩。
目前仅支持zlib算法。
开启桶的数据压缩
将桶标签(Bucket Tagging)中的compression参数设置为zlib
,为桶中的对象添加压缩算法即可开启桶的数据压缩功能。
重要
未设置compression参数时,桶默认不开启压缩。
数据压缩功能在设置压缩算法的5~10分钟后才可生效,请等待5~10分钟后再上传文件。
以桶testbucket为例,介绍不同环境下如何开启桶的数据压缩。
Java
String bucketName = "testbucket";
TagSet tagSet = new TagSet();
tagSet.setTag("compression", "zlib");
client.setBucketTaggingConfiguration(bucketName, new BucketTaggingConfiguration().withTagSets(tagSet));
Go
tagInput := &s3.PutBucketTaggingInput{
Bucket: aws.String("testbucket"),
Tagging: &s3.Tagging{
TagSet: []*s3.Tag{
{
Key: aws.String("compression"),
Value: aws.String("zlib"),
},
},
},
}
_, err := client.PutBucketTagging(tagInput)
Python
client.put_bucket_tagging(
Bucket="testbucket",
Tagging={
"TagSet":[{"Key":"compression","Value":"zlib"},]
}
)
查看桶的压缩算法
通过桶标签查看桶的压缩算法。
Java
BucketTaggingConfiguration tagConfig = client.getBucketTaggingConfiguration(bucketName);
Go
result, _ := client.GetBucketTagging(&s3.GetBucketTaggingInput{
Bucket: aws.String("testbucket"),
})
Python
result = client.get_bucket_tagging(
Bucket='testbucket'
)
关闭桶的数据压缩
您可以通过删除桶标签的方式关闭数据压缩功能。
重要
如果桶同时存在很多标签,但只想删除压缩算法对应的标签,则需要通过覆盖写入的方式将桶标签更新为压缩算法对应的标签。具体操作,请参见开启桶的数据压缩。
删除桶标签的5~10分钟后,数据压缩功能才会完全关闭。
Java
client.deleteBucketTaggingConfiguration("testbucket");
Go
_, err := client.DeleteBucketTagging(&s3.DeleteBucketTaggingInput{
Bucket: aws.String("testbucket"),
})
Python
client.delete_bucket_tagging(Bucket="testbucket")
查看压缩效果
Java
S3Object object = client.getObject(containerName, blobName);
object.getObjectMetadata().getUserMetadata().get("x-lindorm-blob-compressed-length")
说明
x-lindorm-blob-compressed-length
为特定字段,在查看压缩效果时需要添加。返回结果为压缩后的文件大小。
Go
input := &s3.HeadObjectInput{
Bucket: aws.String("testbucket"),
Key: aws.String("testblob"),
}
result, _ := client.HeadObject(input)
fmt.Println(*result)
Python
response = s3_client.head_object(
Bucket="testbucket",
Key="testblob"
)
print(response['Metadata']['x-lindorm-blob-compressed-length'])
说明
x-lindorm-blob-compressed-length
为特定字段,在查看压缩效果时需要添加。返回结果为压缩后的文件大小。
文档内容是否对您有帮助?