有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

amazon web services如何使用Kotlin/Java从s3存储桶中读取Excel文件(xlsx)?

这个问题与其他问题类似,但适用于不同的语言

Python: How to read and load an excel file from AWS S3?

不幸的是,我无法复制这一点,我认为s3客户端可能会有所不同

目前,我可以从s3存储桶中连接到read,并执行了以下操作:

val payload = s3.getObject("my-bucket', "my-file.xlsx")

这将返回类型为S3Object的对象

正如在python的其他帖子中提到的,我应该这样做

 val binary = payload['Body'].read()

但我没有这个

从有效载荷中,我可以看到我有类似objectContent的方法,但似乎仍然不起作用

知道怎么做吗

我使用的是AWS SDK 1.11


共 (1) 个答案

  1. # 1 楼答案

    您可以从S3Object获取InputStream,然后将其写入字符串,例如:

     S3ObjectInputStream s3ObjectInputStream = s3Client.getObject(new GetObjectRequest(youS3Bucket, youFileName)).getObjectContent();
    String result = new BufferedReader(new InputStreamReader(s3ObjectInputStream))
    .lines()
    .parallel()
    .collect(Collectors.joining(System.lineSeparator()));
    

    或文件:

    Files.copy(s3ObjectInputStream, Paths.get("myFile.xlsx"), StandardCopyOption.REPLACE_EXISTING);