gpt4 book ai didi

java - AWS S3 文件上传与 dropwizard 集成?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:00:29 25 4
gpt4 key购买 nike

我是 Dropwizard 的新手。我想在我的项目中实现 AWS S3 文件上传 服务。

我没有得到任何通过 dropwizard 在 AWS S3 上上传文件的教程。

我在pom.xml

中添加了以下依赖项
    <dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.9.28.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>2.17</version>
</dependency>

我已经在 Application 类的 run() 方法中将 MultiPartfeature.class 注册为 -

environment.jersey().register(MultiPartFeature.class);

然后在资源类中定义方法为-

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("/updateProfilePicture")
public String updateProfile(@FormDataParam("file") InputStream fileInputStream,
@FormDataParam("file") FormDataContentDisposition contentDispositionHeader) throws Exception {

String url = "";
AmazonS3 s3client = new AmazonS3Client(new BasicAWSCredentials("MY-ACCESS-KEY", "MY-SECRET_KEY"));

try {
File file = new File(contentDispositionHeader.getFileName());

PutObjectResult putObjectResult = s3client.putObject(new PutObjectRequest("BUCKET-NAME", s3SourceFactory.getSecretAccessKey(), fileInputStream, new ObjectMetadata()));

} catch (AmazonServiceException ase) {
ase.printStackTrace();
} catch (AmazonClientException ace) {
ace.printStackTrace();
}
return url;
}

但在运行时它显示以下日志 -

com.amazonaws.services.s3.AmazonS3Client: No content length specified for stream data.  Stream contents will be buffered in memory and could result in out of memory errors.

如何获取上传文件的url?如何通过编码检查文件是否上传?我错过了什么吗?有没有人对此有任何想法。如果有任何关于 dropwizard 的教程,那将会很有帮助。

提前致谢

最佳答案

访问 key 和 key 是否正确。我的猜测是针对 S3 存储桶权限,一旦你转到 aws 控制台上的 s3 存储桶,在右上角你会找到“属性”,一旦你打开它,你将拥有权限,确保你在那里为你的服务器提供了一个条目。

关于java - AWS S3 文件上传与 dropwizard 集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29533540/

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