如何在Spring Boot中访问GCS存储桶?

4

GCP如何在spring boot中配置才能读取GCS存储桶中的文件?


1
你能否提供更多细节? 你可以在属性文件中使用 gs:// 作为 GCS 路径,然后你的代码就可以连接到 GCS。 示例 https://www.baeldung.com/java-google-cloud-storage - Pradeep Bhadani
@pradeep:我想在我的属性文件中添加路径。 - Akhil Suseelan
你能提供更多关于你使用情况的细节吗?你可以发布一段代码片段并在问题中添加更多信息,让我们知道你到目前为止尝试了什么,如果你遇到了一些错误等。提供更多信息将有助于社区给出更好的答案。你所说的属性文件是什么意思? - tzovourn
2个回答

3

您可以通过自动装配Storage类,从而与存储桶进行(CRUD操作)。

@Autowired
private Storage storage;

public void store(InputStream OBJECT_TO_BE_STORED){
  Blob blob = storage.get(BUCKET_NAME).create(OBJECT_NAME, OBJECT_TO_BE_STORED);
}

在application.properties文件中需要定义以下属性:

  • spring.cloud.gcp.project-id
  • spring.cloud.gcp.credentials.location
  • 存储桶名称的属性KV

Maven应该具有以下依赖项:

        <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-dependencies</artifactId>
            <version>1.2.3.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
   </dependencyManagement>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-starter-storage</artifactId>
        </dependency>

Reference:

  1. https://docs.spring.io/spring-cloud-gcp/docs/1.2.6.RELEASE/reference/html/#spring-cloud-gcp-core
  2. https://docs.spring.io/spring-cloud-gcp/docs/1.2.6.RELEASE/reference/html/#cloud-storage

2
您可以使用Spring Cloud GCP Storage组件,通过gradle/maven轻松添加到您的项目中。
您可以在此处找到一个入门示例:这里 :)
运行示例的步骤如下:
1.确保您已按照这些说明配置了Cloud SDK。
2.在Google Cloud Storage中创建一个新的存储桶。您可以使用随Cloud SDK一起提供的gsutil命令来完成。
$ BUCKET=spring-bucket-$USER
$ gsutil makebucket gs://$BUCKET

将本地的my-file.txt文件传输到存储桶中。
$ gsutil copy my-file.txt gs://$BUCKET
  1. 编辑src/main/resources/application.properties文件,将gcs-resource-test-bucket属性设置为您在步骤2中创建的存储桶的名称。
  2. 启动GcsApplication Spring Boot应用程序。
$ mvn spring-boot:run
  1. 在浏览器中输入 http://localhost:8080/,以打印第3步上传的文件内容。

  2. 要更新文件内容,请使用curl向相同的端点发送POST请求:

$ curl -d 'new message' -H 'Content-Type: text/plain' localhost:8080

您应该会看到一个确认,内容已经被更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接