S3等待直接资源访问的功能?

S3 Wait function on direct resource access?

有没有办法告诉S3在响应之前等待一个对象?我想通过 HTTP(S) 请求直接针对 S3 端点执行此操作。

我了解此功能存在于 PHP SDK 中 http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-waiters.html#

但是直接从 S3 端点下载资源时可以应用此等待功能吗? (没有 SDK)?

答案是肯定的,但不是真的。

,因为 SDK 可以做的所有事情都可以用您自己的代码来完成,因为 SDK 使用相同的 public API 来访问服务。 .SDK 没有特权接口...但是,不是真的,因为 waiter logic 几乎是一种幻觉,一种方便的虚构。它不是在 "tell me when you're ready" 意义上等待服务......它实际上只是轮询服务以检查相关资源的状态。它们只是一种便利,因此您不必编写自己的轮询重试逻辑。

所以,当然可以...但是要做到这一点,您只需要不断询问,直到得到您期望的答复...我认为这不是您希望得到的答案。

不过,当您说 "wait for an object," 时,一旦 PUT returns 成功,一个新对象(不是覆盖)应该可用。覆盖和删除是最终一致的,但新对象的一致性是即时的。

一个例外是 S3 的 us-east-1 区域,如果您使用 s3-external-1.amazonaws.com 或 s3.dualstack.us-east-1.amazonaws.com 端点,而不是 s3.amazonaws.com 端点。