当前位置: 首页 > 知识库问答 >
问题:

从lambda访问s3存储桶时出错-InvalidBucketName

杜元明
2023-03-14

使用Java AWS SDK,我创建了一个lambda函数来从s3 bucket读取csv文件。我已经将bucket公之于众,可以从任何浏览器轻松访问它和文件。为了测试它,我使用lambda控制台上的test按钮。我正在使用hello world测试配置输入模板。
它失败的原因是:

错误消息:指定的桶无效。(服务:Amazon S3;状态代码:400;错误代码:InvalidBucketName;请求ID:XXXXXXXXXXXXXXX)

我已经向lambda_basic_execution角色添加了AmazonS3FullAccess。

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();

也试过

AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();

然后呼叫

S3Object s3object = s3Client.getObject(new GetObjectRequest(
                bucketName, keyName));
https://s3.amazonaws.com/<allAlphaLowerCaseBucketName>

密钥名为:

<allAlphaLowerCaseKeyName>.csv

感谢任何帮助。

共有1个答案

谷梁卓
2023-03-14

bucket名称不是bucket的URL,而只是bucket的实际名称。

S3Object s3object = s3Client.getObject(
                      new GetObjectRequest(
                          <allAlphaLowerCaseBucketName>,
                          <allAlphaLowerCaseKeyName>.csv
                      )
                   );
 类似资料:
  • 我已启动 EC2 - Windows 实例 创建了一个 S3 存储桶,创建了一个角色 S3 完整访问并分配给 EC2 实例。 从EC2实例浏览器中,我能够访问我的角色的元数据:http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2-S3-access 如果我尝试从S3 bucket访问文件:https://s3.ap

  • 我们有一个Lambda函数,需要能够访问私有的S3桶。 该存储桶已启用“阻止所有公共访问”,并具有以下资源策略: 我还将AmazonS3FullAccess策略直接附加到Lambda使用的IAM角色。但是,当Lambda函数尝试访问S3存储桶时,会出现访问被拒绝错误: 使用IAM用户凭据连接到S3的外部系统在尝试访问存储桶时也会收到相同的错误。 有人知道是什么导致了这个错误吗? 以下是发生错误的L

  • 我对Amazon AWS平台相当陌生。 我的实现场景是这样的,我需要一个具有公共读取权限的S3存储桶来存储用户的个人资料图片和其他网站的静态图像,如徽标和背景。应用程序的用户可以上传个人资料图片。 当我尝试访问这个S3存储桶时,我得到了403禁止的错误。 通过阅读一些博客,我做到了以下几点,但不确定我到底错在哪里。 步骤1:为具有公共读取访问权限的区域US-EAST-2(与EC2实例相同的区域)创

  • 有没有一种方法可以将文件列表从一个S3存储桶复制到另一个存储桶?两个S3存储桶都在同一个AWS帐户中。我可以使用aws cli命令一次复制一个文件: 然而,我有1000份文件要复制。我不想复制源存储桶中的所有文件,因此无法使用sync命令。有没有一种方法可以用需要复制的文件名列表来调用一个文件,从而自动化这个过程?

  • 我有一个只能使用签名url访问的S3存储桶。到目前为止,我使用GeneratePresignedUrlRequest(Java)生成签名url。现在我想通过CloudFront访问我的存储桶。问题是我如何在这种情况下生成签名url?

  • 我目前尝试使用AWS lambda。lambda函数应该从S3 bucket加载zip文件(>10 MB)。S3桶位于中,而lambda函数位于中。 当我尝试保存lambda函数时,我得到: GetObject时出错。S3错误代码:AuthorizationHeaderMalformed。S3错误消息:授权头格式错误;“US-East-1”区域错误;应为“EU-Central-1” 这真的是问题所