【问题标题】:How to store data from Spring Boot model to S3 as CVS file - Java如何将 Spring Boot 模型中的数据作为 CSV 文件存储到 S3 - Java
【发布时间】:2021-12-13 01:00:32
【问题描述】:

我在 Spring Boot 中有一个如下所示的模型:

public class TransactionHistory {
    public final String id;
    public final String firstName;
    public final String lastName;

    public TransactionHistory(String id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

我想将此数据以CSV 文件的形式发布到 S3,该文件可以从 S3 下载。

最好的方法是什么?

如果可能的话,我想在 Java 代码中创建 CSV 并将其从代码发布到 S3,因此我不需要将其本地存储在计算机或数据库中。

这可能吗?

【问题讨论】:

  • 有可能并且有多种方式(创建临时文件并上传,直接作为流写入S3)。问题是 - 你尝试了什么?什么不工作?什么不清楚?为什么要使用 S3?
  • 我必须使用 S3 来满足要求。我有我发布的这个 Java POJO。我怎样才能直接作为流呢?你可能有这样的例子吗?会有很大帮助!

标签: java spring-boot csv amazon-s3


【解决方案1】:

您可以使用数据库存储数据,然后将该数据添加到 csv 文件。先创建一个模型类,然后在 pom.xml 文件中声明依赖

<dependency>
    <groupId>net.sf.supercsv</groupId>
    <artifactId>super-csv</artifactId>
    <version>2.4.0</version>
</dependency>

对服务类进行编码,然后编写代码以将数据导出到控制器类中的 csv。我附上了一个链接,其中包含将数据转换为 csv 文件的完整示例。可以轻松下载和上传。

这里是链接:https://www.codejava.net/frameworks/spring-boot/csv-export-example

【讨论】:

    【解决方案2】:

    您可以putObject 上传或getObject 下载文件。 RequestBody 可以直接从流中创建..

    另一种选择是创建一个临时文件并使用 putObject 上传文件。

    正确使用 aws sdk(身份验证和授权)超出了此答案的范围,我假设您会阅读文档。

    尽管注意到 S3 比本地/网络磁盘或数据库慢得多,所以它绝对不是任何替代品。

    【讨论】:

    • 你能给我举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2021-01-02
    • 2019-11-07
    • 2018-06-08
    • 1970-01-01
    • 2021-10-25
    • 2019-05-20
    相关资源
    最近更新 更多