使用Java AWS SDK我已经创建了一个lambda函数来从s3存储桶中读取csv文件。我公开了这个存储桶,可以从任何浏览器轻松访问它和文件。 为了测试它,我正在使用lambda控制台上的测试按钮。我只是使用hello world test config输入模板 它失败了:
错误消息:指定的存储桶无效。 (服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;请求ID:XXXXXXXXXXXXXXX)
Lambda函数和s3存储桶位于同一区域(us-east-1)。
我已将AmazonS3FullAccess添加到lambda_basic_execution角色。
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();
也尝试了
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
然后是电话
S3Object s3object = s3Client.getObject(new GetObjectRequest(
bucketName, keyName));
bucketName是:
https://s3.amazonaws.com/<allAlphaLowerCaseBucketName>
keyName是:
<allAlphaLowerCaseKeyName>.csv
感谢任何帮助。
答案 0 :(得分:2)
存储桶名称不是存储桶的URL,而只是存储桶的实际名称。
S3Object s3object = s3Client.getObject(
new GetObjectRequest(
<allAlphaLowerCaseBucketName>,
<allAlphaLowerCaseKeyName>.csv
)
);