【发布时间】:2021-08-11 16:31:29
【问题描述】:
我想从我的 Amazon S3 存储桶中下载一个文件。这里的问题是 Amazon S3 存储桶位于不同的账户中。我相信我拥有正确的权限,因为,
aws s3 cp s3://bucketname/path/img.JPG ./
这是有效的。
但是在从 Java SDK 执行相同的操作时,它会抛出 (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey;
def downloadfile(amazonS3Client: AmazonS3, fileKeyName: String): Boolean = {
try {
amazonS3Client.getObject("bucketname", fileKeyName)
true
} catch {
case ex: Exception => print(ex); false
}
}
我使用的是默认客户端(因此凭据应该与 cli 相同)并且我正在调用此函数,例如,
downloadFile(AmazonS3ClientBuilder.defaultClient(), "path/img.JPG")
也试过了,
downloadFile(AmazonS3ClientBuilder.defaultClient(), "img.JPG")
【问题讨论】:
-
亚马逊为此用例提供此文档 -- aws.amazon.com/premiumsupport/knowledge-center/…
-
我们使用相同的文档创建了策略。知道为什么 cli 工作而不是 sdk 代码吗?
标签: java amazon-web-services amazon-s3