- 1.3 FDS简介
- 1.4 基本概念
- 1.5 使用场景
- 1.6 快速入门
- 1.6.1 帐号注册
- 1.6.2 创建Bucket
- 1.6.3 上传文件
- 1.6.4 生成文件预签名链接
- 1.6.5 为云服务密钥授权
- 1.6.6 通过SDK下载文件
- 1.7 请求认证
- 1.7.1 OAuth认证
- 1.7.2 签名认证
- 1.7.3 预签名认证
- 1.8 权限列表
- 1.9 Presigned URL
- 1.10 SDK
- 1.10.1 Service操作API的签名和示例
- 1.10.2 Bucket操作API的签名和示例
- 1.10.3 Object操作API的签名和示例
- 1.11 Service操作REST API
- 1.11.1 List Buckets
- 1.12 Bucket操作REST API
- 1.12.1 PUT Bucket
- 1.12.2 DELETE Bucket
- 1.12.3 HEAD Bucket
- 1.12.4 PUT Bucket ACL
- 1.12.5 GET Bucket META
- 1.12.6 GET Bucket ACL
- 1.12.7 List Objects
- 1.13 Object操作 REST API
- 1.13.1 Put Object
- 1.13.2 POST Object
- 1.13.3 GET Object
- 1.13.4 HEAD Object
- 1.13.5 Copy Object
- 1.13.6 PUT Object ACL
- 1.13.7 GET Object ACL
- 1.13.8 GET Object metadata
- 1.13.9 DELETE Object
- 1.13.10 Delete multiple Objects
- 1.13.11 DELETE Object ACL
- 1.13.12 Restore Object
- 1.13.13 Rename Object
- 1.13.14 Prefetch Object
- 1.13.15 Refresh Object
- 1.13.16 Init multipart upload
- 1.13.17 Upload part
- 1.13.18 Complete multipart-upload
- 1.13.19 Abort multipart upload
- 1.14 CDN使用
- 1.15 服务端加密
- 1.16 图像处理
- 1.17 计量计费
- 1.18 分片上传
- 1.19 误删数据恢复
- 1.20 TTL功能
- 1.21 跨域资源共享(CORS)
- 1.22 FDS命令行工具
- 1.23 FDS第三方迁移工具
- 1.24 FDS存量数据加密工具
- 1.25 FAQ
- 1.26 问题调查
- 1.27 问题反馈
- 1.28.1 abort-multipart-upload
- 1.28.2 complete-multipart-upload
- 1.28.3 delete-bucket
- 1.28.4 delete-multiple-objects
- 1.28.5 delete-object-acl
- 1.28.6 delete-object
- 1.28.7 delete-objects
- 1.28.8 get-bucket-acl
- 1.28.9 get-bucket-meta
- 1.28.10 get-endpoint
- 1.28.11 get-object-acl
- 1.28.12 get-object
- 1.28.13 copy-object
- 1.28.14 get-object-metadata
- 1.28.15 head-bucket
- 1.28.16 head-object
- 1.28.17 init-multipart-upload
- 1.28.18 list-bucket
- 1.28.19 list-objects
- 1.28.20 OAuth
- 1.28.21 post-object
- 1.28.22 prefetch-object
- 1.28.23 put-bucket-acl
- 1.28.24 put-bucket
- 1.28.25 put-object-acl
- 1.28.26 put-object
- 1.28.27 rename-object
- 1.28.28 refresh-object
- 1.28.29 restore-object
- 1.28.30 upload-part
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.20 TTL功能
TTL功能
在删除或覆盖object时,FDS会先将object副本移动至trash,以便找回数据,防止误删除。
FDS TTL(Time-to-Live)功能能够设置object的生存周期,其粒度为bucket级别,即可以为一个bucket设置TTL,从而自动定时的清理指定的object。
过期规则
Bucket中Object过期的定义: 当前时间 > Object上传时间 + expiration
Trash中Object过期的定义 : 当前时间 > Object移入Trash的时间 + nonCurrentVersionExpiration
符合过期规则的Object都会被标记为过期(不一定立刻删除),不管它实在TTL设置之前传入还是在TTL设置之后传入。
TTL配置方法
只有bucket owner可以配置TTL。
通过HTTP PUT请求/{bucketName}?lifecycle
来为某个bucket设置TTL,要设置的内容放在报文体中。
通过HTTP GET请求/{bucketName}?lifecycle
来查询某个bucket设置TTL。
目前只能通过python命令行工具设置TTL,方式为 fds -m put -b $BUCKET_NAME --lifecycle $TTL_CONFIG,格式如下。
控制台配置TTL:
点击Bucket的生命周期
配置TTL规则:
配置格式
TTL配置为json字符串,类似
{
"rules": [ // rule列表
{
"enabled": true, // 是否启用该rule,为false时忽略该rule
"prefix": "images/", // 前缀,若object名不满足该前缀时,忽略该rule
"actions": { // action列表,当object匹配该规则时,开始执行actions。action分为以下几类:
"nonCurrentVersionExpiration": { // 若trash中的旧版本存在超过指定时限,则将该旧版本彻底删除
"days": 7 // float型,单位为天
},
"expiration": { // 若object存在超过指定时限,则将该object移至trash
"days": 30
},
"abortIncompleteMultipartUpload": { // 若分片上传任务执行时间超过指定时限仍未完成,则abort该分片上传任务
"days": 7
}
}
},
{
"enabled": true,
"prefix": "log/",
"actions": {
"nonCurrentVersionExpiration": {
"days": 7
},
"expiration": {
"days": 30
}
}
},
...
]
}
可以通过配置不同的prefix来为各个“目录”下的object设置不同的生存周期。若一个object名同时满足多个rule,则优先选择prefix最长的rule进行处理。
其他事项
- object实际生存时间会和设置的TTL有误差,可能会晚于指定时间1~2天才被删除。但不会被提前删除。
- 如果不设置TTL,则永远保留用户上传的object;trash中的副本会在7天后被删除;未complete的分片上传任务会在7天后abort。
- 目前并不是所有集群都上线了TTL功能,之后会陆续更新其他集群,详情可在FDS支持群里询问。
FAQ
- 修改多久配置会生效? 从FDS下次TTL扫描开始生效,目前FDS不能保证当天生效,这个问题后期会改善。
- 删除a.txt之后,再删除a.txt,是否重新开始计算? 这个问题的关键是要理解FDS TTL的过期策略。Trash中Object过期的定义 : 当前时间 > Object移入Trash的时间 + nonCurrentVersionExpiration。 因为新的a.txt移入Trash中的时间发生了改变,过期时间也会重新计算。
- 以prefix开头的对象和文件夹都会删除吗? 首先,FDS并没有文件夹的概念,文件夹只是只是一种抽象的理解方式,在FDS中,只是以文件夹名字为prefix的对象。 例如,bucket下面有如下内容: ddd/a.txt ddd/abc/a.txt ddda.txt ddd.txt dddb.txt 如果TTL的prefix设置为ddd,则上述对象都会被删除。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论