tie*_*er1 4 amazon-s3 go amazon-web-services aws-sdk aws-sdk-go
使用 AWS Golang SDK,我尝试为我上传的某些对象设置到期日期。我很确定标题设置正确,但是,当登录到 S3 并查看新对象的属性时,它似乎没有到期日期。
下面是我如何上传对象的片段
exp := time.Now()
exp = exp.Add(time.Hour * 24)
svc := s3.New(session.New(config))
_, err = svc.PutObject(&s3.PutObjectInput{
Bucket: aws.String("MyBucketName"),
Key: aws.String("201700689.zip"),
Body: fileBytes,
ContentLength: aws.Int64(size),
ContentType: aws.String(fileType),
Expires: &exp,
})
Run Code Online (Sandbox Code Playgroud)
知道这里发生了什么吗?谢谢
好吧,Expires只是错误的字段:
// 对象不再可缓存的日期和时间。
您想要的是Object Expiration可以将其设置为存储桶规则而不是每个对象。
基本上,您添加生命周期规则(在存储桶属性上)指定:
每个规则具有以下属性:
前缀 – 密钥名称的初始部分(例如 logs/)或整个密钥名称。存储桶中具有匹配前缀的任何对象都将受此过期规则的约束。空前缀将匹配存储桶中的所有对象。
状态 - 启用或禁用。您可以选择不时启用规则以对您的存储桶执行删除或垃圾收集,并在其他时间禁用规则。
过期 – 指定受规则约束的对象的过期期限,作为从对象创建日期算起的天数。
Id - 可选,为规则命名。
然后将每天评估此规则,并删除任何过期的对象。
有关更深入的解释,请参阅https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/。
| 归档时间: |
|
| 查看次数: |
1482 次 |
| 最近记录: |