当前位置: 首页 > 知识库问答 >
问题:

AWS S3文件上传与dropwizard集成?

杨凌
2023-03-14

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

我没有收到任何通过拖放在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>

我已经注册了多部分功能。将应用程序类的run()方法中的-

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有任何可用的教程,它将很有帮助。

预先感谢

共有1个答案

宗增
2023-03-14

如果访问密钥和秘密密钥是正确的。我的猜测是对s3桶权限,一旦你去你的aws控制台上的S3桶,右上方你会发现“属性”,一旦你打开,你将有权限,确保你给你的服务器有一个条目。

 类似资料:
  • 我必须从我的网站上传一个文件,但cnt似乎可以使用drop wizard。 这是我网站上的表格。 如何在后端接收文件? 解决办法是

  • 我正在使用dropwizard,我想一次上传多个文件。 我如何改变我的代码来上传多个文件? 我正在使用<code>org.glassfish.jersey。“媒体”,“泽西媒体多部分”,“2.17”用于文件上传。 这是我上传单个文件的代码:

  • 有人能告诉我如何在dropwizard 1.2.6中实现可恢复的文件上传吗?因此,如果用户试图上传一个大文件(4-5 GB),如果出现网络故障或浏览器错误关闭,那么用户将能够从中断的地方恢复该过程。

  • 我在我的Java API中使用了swagger-inflector V.1.0.17。以下是我构建API的基础:https://github.com/swagger-api/swagger-samples/tree/master/java/fintector-dropwizard-guice 我的文件上传API定义如下: 和控制器中的方法:

  • 我正在尝试对停靠数据库运行DropWizard的集成测试。 DropWizard 测试容器 我试过的: 我得到由:java.lang.IllegalStateException引起的 将这些链接在一起也不起作用 最后,这是可行的,但据我所知,它在每次测试中都运行新的DropwizardAppRule,这是不好的... 那么,如何将规则链接起来,使PostgreSQLContainer首先启动,并且

  • 本文向大家介绍java 文件上传(单文件与多文件),包括了java 文件上传(单文件与多文件)的使用技巧和注意事项,需要的朋友参考一下 java 文件上传(单文件与多文件) 一、简述 一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。