【问题标题】:Download the files inside compressed .gz files from S3 Bucket从 S3 Bucket 下载压缩的 .gz 文件中的文件
【发布时间】:2018-05-20 18:11:54
【问题描述】:

我在 s3 存储桶中有一组 .gz 压缩文件。我想下载 .gz 文件中的 csv 文件。我试图提取 .gz 文件并将其放入 s3Object 中。现在我需要提取 s3 对象并使用 java 下载其中的 csv 文件。请告知。这是我使用的代码。现在我可以下载 gz 文件了。但是我需要在gz中下载csv文件。

S3Object object = s3Client.getObject(“bucket”,“Location/file.gz”);
final String encoding = null;
return ResponseEntity.ok(IOUtils.toString(object.getObjectContent(), encoding));

我需要帮助解压 s3object 中的 gz 文件并在响应中返回解压后的内容。

【问题讨论】:

  • 您是说您已成功将文件从 Amazon S3 下载到您的计算机,现在您想解压缩本地文件吗?您是否在网络上搜索过 Zipping and Unzipping in Java | Baeldung 之类的内容?
  • @Harish 你试过我的解决方案了吗?如果没有,我可以重新尝试回答。

标签: java spring-boot amazon-s3 controller gzip


【解决方案1】:

下面的代码会将您的 gunzip 文件转换为纯数据,但我不确定 100% 关于您的实际问题,无论您是想在浏览器本身中显示内容还是想以Save as Option 发送它,那就是假设您在将 gunzip 格式转换为 CSV 数据时遇到问题,为什么我对您的代码进行了最小的代码更改,希望您可以修改/增强它最适合您。

import java.util.zip.GZIPInputStream;
//your method begins from here
final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();


S3Object object = s3.getObject("your-bucket", "file-path");


return ResponseEntity.ok(IOUtils.toString(new GZIPInputStream(object.getObjectContent())));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 1970-01-01
    相关资源
    最近更新 更多