【发布时间】:2021-06-22 01:08:07
【问题描述】:
我正在查看 delete an object 的 aws sdk-for-go 开发人员指南。
示例代码
_, err = svc.DeleteObject(&s3.DeleteObjectInput{Bucket: aws.String(bucket), Key: aws.String(obj)})
if err != nil {
exitErrorf("Unable to delete object %q from bucket %q, %v", obj, bucket, err)
}
err = svc.WaitUntilObjectNotExists(&s3.HeadObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(obj),
})
如上所示,该示例调用删除对象 API,然后等待对象不存在
我有以下与此相关的问题:
- 调用delete API后为什么要等待检查是否被删除?
- 等待检查多长时间? (什么是最大窗口?)。多久检查一次?
在 AWS 文档中找不到任何答案。
【问题讨论】:
-
我会假设 DeleteObject 操作是一个具有最终一致性的操作,并且在所有 S3 数据中心实现一致性之前使用
WaitUntilObjectExists。如果要控制等待时间和最大尝试次数,可以使用WaitUntilObjectExistsWithContext方法。
标签: go amazon-s3 aws-sdk-go