有没有办法告诉S3在响应之前等待对象?我想通过HTTP(S)请求直接对S3端点执行此操作。
我理解PHP SDK中存在此函数 http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-waiters.html#
但是,您可以直接从S3端点下载资源时应用此等待功能吗? (没有SDK)?
答案 0 :(得分:1)
答案是肯定的,但不是真的。
是,因为SDK可以执行的所有操作都可以使用您自己的代码完成,因为SDK使用相同的文档公共API来访问服务... SDK没有特权接口。但是,再一次,不是真的,因为waiter logic几乎是一种幻想,一种方便的虚构。它不是在等待服务时“告诉我你什么时候准备好”的感觉......它实际上只是轮询服务来检查有问题的资源状态。它们只是一种便利,因此您不必编写自己的轮询重试逻辑。
所以,确定你可以......但要做到这一点,你只需要继续询问,直到你得到你期望的答案......我认为这不是你所希望的答案。
当你说“等待一个对象”时,一旦PUT
返回成功,就应该有一个新对象(不是覆盖)。覆盖和删除最终是一致的,但新的对象一致性是立竿见影的。
对此的一个例外是在S3的us-east-1区域,如果您使用s3-external-1.amazonaws.com或s3.dualstack.us-east-1.amazonaws,则仅正式提供即时一致性.com端点,而不是s3.amazonaws.com端点。