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

获取AmazonS3时无法通过区域提供程序链找到区域错误

陆建木
2023-03-14

我有以下方法返回AmazonS3上传文件。在本地环境中,我必须连接到不同区域的s3 bucket,但在其他环境中,s3 bucket和应用程序代码是相同的aws区域。

 html" target="_blank">public AmazonS3 getAmazonS3Client() {
        if ("local".equals(hostEnvironment)) {
            final AssumeRoleRequest roleRequest = new AssumeRoleRequest()
                    .withRoleArn("arnrole").withRoleSessionName("s3Session");
            final AssumeRoleResult assumeRoleResult = AWSSecurityTokenServiceAsyncClientBuilder.defaultClient()
                    .assumeRole(roleRequest);    
            final Credentials sessionCredentials = assumeRoleResult.getCredentials();
            final BasicSessionCredentials basicSessionCredentials = new BasicSessionCredentials(
                    sessionCredentials.getAccessKeyId(), sessionCredentials.getSecretAccessKey(),
                    sessionCredentials.getSessionToken());
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
            (new AWSStaticCredentialsProvider(basicSessionCredentials)).build();
        } else {
            return AmazonS3Client.builder().withRegion("us-east-2").withCredentials
                    (new InstanceProfileCredentialsProvider(true)).build();
        }    
    }

当我从本地运行时,我得到了以下异常,我错过了什么?

原因:com.amazonaws.sdkclientexception:无法通过区域提供程序链找到区域。必须在生成器或安装环境中提供显式区域才能提供区域。在com.amazonaws.client.builder.AWSClientBuilder.SetRegion(AWSClientBuilder.java:462)在com.amazonaws.client.builder.AWSClientBuilder.ConfigureMutableProperties(AWSClientBuilder.java:424)在com.amazonaws.client.builder.build(AWSyncClientBuilder.build(AWSyncClientBuilder.80)在

共有1个答案

李言
2023-03-14

在我将区域设置为AmazonS3Client之后,这就起作用了

AmazonS3Client amazonS3=新AmazonS3Client(basicSessionCredentials);Amazons3.SetRegion(RegionUtils.GetRegion(“US-East-2”));

 类似资料:
  • 我已经完成了题为“以编程方式设置AWS区域1”的问题,但它并没有提供我所需要的全部答案。 Q1:我得到一个找到一个region。我做错了什么?还是我漏掉了一个错别字。 } Q2:如果我想用它构建一个Lambda函数,需要做哪些代码更改?我知道如何创建lambda函数和它所需要的角色。只需要知道我编写的代码是否需要更改。我应该如何实现LambdaFuctionHandler类,如下所示:

  • 问题内容: 我经历了题为“以编程方式将AWS区域设置为1”的问题,但它没有提供我需要的所有答案。 Q1:我得到一个。我究竟做错了什么?还是我错过了错别字。 } 问题2:如果要从中构建Lambda函数,需要进行哪些代码更改?我知道如何创建lambda函数及其所需的角色。只是需要知道我编写的代码是否需要更改。我应该如何实现LambdaFuctionHandler类,如下所示: 问题答案: 关于Q1,请

  • 有人知道为什么第一个查询会导致抛出此错误,而第二个查询会起作用吗? ORA-01882:未找到时区区域01882。00000-“未找到时区区域%s” > 导致错误:在时区选择系统标记(SELECT t.TIME_ZONE从SOME_TABLEt WHERE t.TIME_ZONE='美国/丹佛'和ROWNUM=1)从Dual 正确工作:选择时区的系统标记(选择美国/丹佛从SOME_TABLEt哪里

  • 我有一个像这样的boto客户 我使用这个客户端检测文本从图像和部署的代码在AWS区域,其中Rekognsion api不可用,但提供区域名称,它在客户端可用。在执行/测试lambda函数时,它给 为什么选择我在客户“us-east-1”中提供的ap-south-1 客户端=boto3.client('rekognture',region_name="us-East-1") 但当我在本地运行代码时,

  • 比特币是区块链中最着名的实现。很多开发和方向都是基于区块链使比特币发生的前提。我们可以学习并扩展它如何传播到如此多的不同领域。 区块链技术修复了互联网未设计的三个东西,这三个东西是: 价值 信任 可靠性 价值 使用区块链,实际上可以在数字资产上创造价值。该价值可以由拥有它的人控制。它可以在没有中间集中代理的情况下通过互联网传输独特的资产。 信任 区块链可以安全地分配特定数字资产的所有权,并能够跟踪

  • 问题内容: 我在尝试创建一个 Connection 对象来处理来自命令行Java应用程序和Oracle数据库的连接时遇到以下问题。 因此,我有一个 Main 类,其中包含 main() 方法,这是一个: 问题是当我尝试执行此指令时: 我得到这个异常: 因此,我记得在其他与此数据库一起使用的应用程序中,有必要设置时区或类似的内容(但现在我无法访问这些应用程序)。 那么,如何解决此问题?我可以通过编程