nis*_*ant 5 java amazon-s3 amazon-web-services aws-sdk
AWS S3 Java SDK 提供了一种方法doesObjectExist()来检查对象是否存在于 S3 中。它内部使用什么操作?是GET, LIST, 还是HEAD?
我的担忧主要与它的成本有关。根据 S3 文档,美国西俄勒冈州的成本是 - PUT、COPY、POST 或 LIST 请求每 1,000 个请求 $0.005
GET、SELECT 和所有其他请求每 1,000 个请求 $0.0004
成本doesObjectExist()属于第一类还是第二类?此外,我正在阅读此操作需要ListBucket和GetObject权限的地方。那么这是否意味着此操作会产生上述两种类型的成本?
Vic*_*ari 10
查看代码,该doesObjectExist()方法内部调用getObjectMetadata(link , link)。
如果你更深入地研究一下代码,实际的 HTTP 请求就是一个HEAD请求,所以我强烈怀疑他们只是HEAD在对象本身上执行 a 操作。
REST API的描述GetObjectMetadataRequest和调用也类似。HEAD
关于权限,你是正确的(下面的摘录也来自HEADREST API上的请求):
您需要 s3:GetObject 权限才能执行此操作。有关更多信息,请转到 Amazon Simple Storage Service 开发人员指南中的在策略中指定权限。如果您请求的对象不存在,Amazon S3 返回的错误取决于您是否也具有 s3:ListBucket 权限。
| 归档时间: |
|
| 查看次数: |
5736 次 |
| 最近记录: |