Eag*_*eak 3 java amazon-s3 amazon-web-services aws-sdk
我使用AmazonS3Client1.11.66版中适用于Java的AWS开发工具包中的来检查S3中密钥的存在:
s3client.doesObjectExist(bucketName, key);
Run Code Online (Sandbox Code Playgroud)
如果我给它一个现有的键名,它会正确返回true。对于不存在的密钥,我总是会AmazonS3Exception通知我有关API返回的403的信息。
我要更改什么才能使其返回false?
该服务的IAM策略如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::MY_BUCKET/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
似乎您已授予对象(而非存储桶)权限。您的策略应允许列出存储分区。尝试在策略中指定存储桶名称:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:*"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::MY_BUCKET"
}
]
}
Run Code Online (Sandbox Code Playgroud)
请注意,MY_BUCKET而不是MY_BUCKET/*。
| 归档时间: |
|
| 查看次数: |
312 次 |
| 最近记录: |