gpt4 book ai didi

java - 使用 REST API 将文件上传到 s3 存储桶

转载 作者:行者123 更新时间:2023-11-30 02:05:08 27 4
gpt4 key购买 nike

使用 S3 SDK 来完成此操作变得很简单。但想要使用 S3 REST API(阅读一些优点)。

我已经阅读了 S3 API 文档,发现很难使用它进行编码。我对这种类型的编码完全陌生,其中它使用请求参数、请求 header 、响应 header 、授权、错误代码、ACL 等。它还提供了示例示例,但找不到如何使用这些示例和进行编码的方法。

任何人都可以帮助我从哪里开始和结束,以便我可以使用 API 为 S3 上的所有 CRUD 操作编写代码。上传图像文件的示例将帮助我更好地理解。

最佳答案

我在下面放置了一些基本的代码片段,您可以轻松地将它们集成到您的代码中。

获取 s3 客户端:

private AmazonS3 getS3Client() {
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(credentials)
.withAccelerateModeEnabled(true).withRegion(Regions.US_EAST_1).build();
return s3Client;
}

上传文件:

public void processOutput(FileServerDTO fileRequest) {

try {
AmazonS3 s3Client = getS3Client();
s3Client.putObject(fileRequest.getBucketName(), fileRequest.getKey(), fileRequest.getFileContent(), null);
} catch (Exception e) {
logger.error("Exception while uploading file" + e.getMessage());
throw e;
}
}

正在下载文件:

public byte[] downloadFile(FileServerDTO fileRequest) {
AmazonS3 s3Client = getS3Client();
S3Object s3object = s3Client.getObject(new GetObjectRequest(fileRequest.getBucketName(), fileRequest.getKey()));
S3ObjectInputStream inputStream = s3object.getObjectContent();
try {
return FileCopyUtils.copyToByteArray(inputStream);
} catch (Exception e) {
logger.error("Exception while downloading file" + e.getMessage());
}
return null;
}

FileServerDTO包含与文件信息相关的基本属性。您可以在您的服务中轻松使用这些 util 方法。

关于java - 使用 REST API 将文件上传到 s3 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51589073/

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