gpt4 book ai didi

java - 如何读取 Amazon S3 中的文件内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:23 25 4
gpt4 key购买 nike

我在 Amazon S3 存储桶 ABCD 中有一个文件。我有 3 个对象 ("folderA/folderB/folderC/abcd.csv") 是文件夹,在最后一个文件夹中我有一个 .csv 文件 (abcd .csv)。我使用逻辑将其转换为 JSON 并将其加载回另一个文件,该文件是同一文件夹 ("folderA/folderB/文件夹C/abcd.txt")。为此,我必须在本地下载文件。我将如何直接读取文件并将其写回文本文件。下面是我用来写入 S3 文件的代码,我需要从 S3 读取文件。

 InputStream inputStream = new ByteArrayInputStream(json.getBytes(StandardCharsets.UTF_16));
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(json.length());
PutObjectRequest request = new PutObjectRequest(bucketPut, filePut, inputStream, metadata);
s3.putObject(request);

最佳答案

首先,您应该获取对象 InputStream 来满足您的需要。

S3Object object = s3Client.getObject(new GetObjectRequest(bucketName, key));
InputStream objectData = object.getObjectContent();

InputStreamFile Namepath 传递给以下方法以下载您的流。

public void saveFile(String fileName, String path, InputStream objectData) throws Exception {
DataOutputStream dos = null;
OutputStream out = null;
try {
File newDirectory = new File(path);
if (!newDirectory.exists()) {
newDirectory.mkdirs();
}

File uploadedFile = new File(path, uploadFileName);
out = new FileOutputStream(uploadedFile);
byte[] fileAsBytes = new byte[inputStream.available()];
inputStream.read(fileAsBytes);

dos = new DataOutputStream(out);
dos.write(fileAsBytes);
} catch (IOException io) {
io.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
if (dos != null) {
dos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}

下载对象后,读取文件并将其转换为 JSON 并将其写入 .txt 文件,之后您可以上传 txt 文件到 S3

中所需的存储桶

关于java - 如何读取 Amazon S3 中的文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27318587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com