首页 > 解决方案 > Spring boot 2.4 - 必须在构建器或设置环境中提供显式区域以提供区域

问题描述

我正在使用 Spring Boot 2.4.5 和 Spring Cloud 2.3.1 并参考这些文档在我的 Spring boot 项目中实现 S3 服务 - spring blogspring cloud 文档

我的配置如下图所示。

pom.xml

----------------------------------
<dependency>
  <groupId>io.awspring.cloud</groupId>
  <artifactId>spring-cloud-aws-autoconfigure</artifactId>
  <version>2.3.1</version>
</dependency>
<dependency>
  <groupId>io.awspring.cloud</groupId>
  <artifactId>spring-cloud-aws-context</artifactId>
  <version>2.3.1</version>
</dependency>
----------------------------------
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.awspring.cloud</groupId>
            <artifactId>spring-cloud-aws-dependencies</artifactId>
            <version>2.3.1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

应用程序.yml

cloud:
  aws:
    credentials:
      access-key: <access-key>
      secret-key: <secret-key>
    region:
      static: us-east-2
    s3:
      region: us-east-2

Bean config - 想知道为什么我必须创建这个 bean,因为 Spring boot 应该这样做。但没有这个,它说“没有这样的豆子”。

@Bean
public AmazonS3 amazonS3() {
    return AmazonS3ClientBuilder.defaultClient();
}

在运行应用程序时,出现此错误。可能是什么问题?请注意,我的系统中可能有一些 aws 配置,但我相信它会被application.yml值覆盖。我什至删除~/.aws了文件夹并再次尝试,但没有工作。

创建名为“amazonS3”的 bean 时出错。必须在构建器或设置环境中提供显式区域以提供区域

在许多博客中发现了这个问题,但一切都指向 Java AWS SDK,他们都说要配置~/.aws值,我不想这样做。

标签: spring-bootaws-sdkspring-cloudaws-java-sdkspring-cloud-aws

解决方案


推荐阅读