【发布时间】:2017-09-01 07:06:20
【问题描述】:
我正在使用一个应用程序,我将一些工件存储在 S3 存储桶中。我想在推送工件之前检查存储桶是否存在。我参考了 S3 API 参考,并且方法“doesBucketExist”似乎只检查存储桶是否存在,实际上并没有验证它与请求是否在同一个帐户中。
我想知道headBucket方法是否有效验证bucket是否存在并且与请求在同一个账户中?或者有没有更好的方法来验证账户中存储桶的存在?
谢谢
【问题讨论】:
-
你不能试着创建一个小文件吗?
-
我建议您浪费时间尝试发现这一点。出于所有实际目的,不可能最终确定将特定对象上传到存储桶是否会成功......除了尝试上传对象之外。存储桶策略和 IAM 用户策略允许精细访问控制到您可能(对于任何一个存储桶)能够创建名为
foo的对象,但不能创建名为bar的对象。当一个测试有这么多假阳性或阴性的方法时,它就不是一个有价值的测试。 -
例如,我的许多存储桶都会拒绝未指定正确
x-amz-server-side-encryption值的上传。根据所有证据,用户拥有对存储桶的完全访问权限......但如果他们尝试未加密的上传,AccessDenied。
标签: amazon-web-services amazon-s3