在Spring MVC Web应用程序中从Amazon S3服务下载上传的文件

owWlad

我有从Amazon s3服务下载我上传的文件的问题。我已经成功实现了上载部分,我所需要做的就是将这些文件下载到本地hardrive中,以便以后查看。我的应用程序是spring mvc应用程序。

这是我呼叫下载服务的控制器

@Controller
public class fileController{
@Autowired S3Service s3Service;
@Autowired AwsConfig awsConfig;
@Autowired Environment env;
@Autowired DocRepository docRepo;

@RequestMapping(value="downloadDocume")
public void downloadDocument(@RequestParam("docId") Long docId
,HttpServletRequest request ,HttpServletResponse response)){
Document doc = docRepo.findOne(docId);
String docName = doc.getAsset().getName();
 String ASSET_PATH = awsConfig.getBaseUrl()+"/"+
                   awsConfig.getBucket()+"/";

    if (Objects.equals(env.getProperty("spring.profiles.active"),"prod")){
        ASSET_PATH= awsConfig.getBaseUrl()+"/"+
                awsConfig.getBucket()+"/";
    }

   String filtered = StringUtils.delete(docName, ASSET_PATH);
String mimetype = request.getSession().getServletContext().getMimeType(filtered);
    FileStream file = s3Service.getAssetByName("/Documents/", filtered);
    response.setContentType(mimetype);
    response.setContentLength((int) file.getSize());

    response.setHeader("Content-Disposition","attachment; filename=\"" + docName +"\"");
    FileCopyUtils.copy(file.getInputStream(), response.getOutputStream());
 }
}

//这是我的S3Sservice类,具有下载方法

 @Service
public class S3Service{
public FileStream getAssetByName(String path , String name)
        throws FileNotFoundException{
    AmazonS3Client s3 = new AmazonS3Client(
            new BasicAWSCredentials(awsConfig.getAccessKey(), awsConfig.getSecretKey()));
    s3.setEndpoint(awsConfig.getBaseUrl());
    s3.setS3ClientOptions(new S3ClientOptions().withPathStyleAccess(true));
    S3Object obj = s3.getObject(new GetObjectRequest(awsConfig.getBucket(), getS3Path(path) + name));
    return new FileStream(obj.getObjectContent(), obj.getObjectMetadata().getContentLength());
}


 }
owWlad

哇..解决方案非常简单..我只是使用了html下载链接,并像这样在我的jsp上传递了参数。这是我的document.jsp

<a class="btn btn-primary" href="${document.asset.name}" download="${document.asset.name}">Download Document</a>

我将控制器中的downloadDocument()更改为以下形式

public void downloadDocument(@RequestParam("docId") Long docId
,HttpServletRequest request ,HttpServletResponse response)){
Document doc = docRepo.findOne(docId);
model.addAtribute("document" , doc);
return "document";
 }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

来自分类Dev

如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

来自分类Dev

在Spring MVC应用程序中打开静态文件

来自分类Dev

Spring MVC Web应用程序中的模板

来自分类Dev

Spring MVC与Web应用程序中的服务,控制器和数据访问层有何关系?

来自分类Dev

如何在Spring-MVC和JSF混合Web应用程序中设置JSF欢迎文件

来自分类Dev

在Openshift中的tomcat中部署Spring MVC Web应用程序.war文件会出现空白页

来自分类Dev

如何使用构建类或war文件将我的Spring MVC Web应用程序部署到Apache tomat目录中?

来自分类Dev

Spring MVC应用程序中的性能

来自分类Dev

Spring MVC应用程序中的性能

来自分类Dev

使用WSSpringServlet的带有SOAP Web服务的Spring MVC应用程序

来自分类Dev

Spring MVC是否缓存Web应用程序启动时未加载的bean文件?

来自分类Dev

MVC Web应用程序中的托管WCF服务

来自分类Dev

在具有Java配置的Spring MVC 4 Web应用程序中的Web服务器(Wildfly)上运行时,JPA命名和条件查询失败

来自分类Dev

如何从Spring MVC应用程序的Tomcat文件夹中的bin目录中读取文件?

来自分类Dev

Spring MVC从应用程序战争文件中分离资产

来自分类Dev

使用Spring MVC应用程序实现Tiles 3

来自分类Dev

无法在Spring Web应用程序中打开属性文件

来自分类Dev

在 Spring MVC 应用程序中下载 CSV - 文件不下载。

来自分类Dev

如何在Apache Tomcat 6服务器中修复Java Spring MVC Web应用程序的运行时间?

来自分类Dev

Spring在Spring MVC应用程序中的集成

来自分类Dev

使用Spring MVC创建Web应用程序

来自分类Dev

设置Spring MVC Web应用程序的起始页面?

来自分类Dev

Spring MVC和Web应用程序分离

来自分类Dev

Spring MVC和Web应用程序体系结构

来自分类Dev

启动Spring Web MVC应用程序时发生异常

来自分类Dev

如何在Spring Web应用程序运行时在spring-web-mvc中获取WebApplicationContext和DispatcherServlet的实例

来自分类Dev

如何在Spring Web应用程序运行时在spring-web-mvc中获取WebApplicationContext和DispatcherServlet的实例

来自分类Dev

使用web.xml中的Spring安全性和错误页面保护Spring Web MVC应用程序

Related 相关文章

  1. 1

    如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

  2. 2

    如何在Spring 3 MVC应用程序中对文件上传实施病毒扫描

  3. 3

    在Spring MVC应用程序中打开静态文件

  4. 4

    Spring MVC Web应用程序中的模板

  5. 5

    Spring MVC与Web应用程序中的服务,控制器和数据访问层有何关系?

  6. 6

    如何在Spring-MVC和JSF混合Web应用程序中设置JSF欢迎文件

  7. 7

    在Openshift中的tomcat中部署Spring MVC Web应用程序.war文件会出现空白页

  8. 8

    如何使用构建类或war文件将我的Spring MVC Web应用程序部署到Apache tomat目录中?

  9. 9

    Spring MVC应用程序中的性能

  10. 10

    Spring MVC应用程序中的性能

  11. 11

    使用WSSpringServlet的带有SOAP Web服务的Spring MVC应用程序

  12. 12

    Spring MVC是否缓存Web应用程序启动时未加载的bean文件?

  13. 13

    MVC Web应用程序中的托管WCF服务

  14. 14

    在具有Java配置的Spring MVC 4 Web应用程序中的Web服务器(Wildfly)上运行时,JPA命名和条件查询失败

  15. 15

    如何从Spring MVC应用程序的Tomcat文件夹中的bin目录中读取文件?

  16. 16

    Spring MVC从应用程序战争文件中分离资产

  17. 17

    使用Spring MVC应用程序实现Tiles 3

  18. 18

    无法在Spring Web应用程序中打开属性文件

  19. 19

    在 Spring MVC 应用程序中下载 CSV - 文件不下载。

  20. 20

    如何在Apache Tomcat 6服务器中修复Java Spring MVC Web应用程序的运行时间?

  21. 21

    Spring在Spring MVC应用程序中的集成

  22. 22

    使用Spring MVC创建Web应用程序

  23. 23

    设置Spring MVC Web应用程序的起始页面?

  24. 24

    Spring MVC和Web应用程序分离

  25. 25

    Spring MVC和Web应用程序体系结构

  26. 26

    启动Spring Web MVC应用程序时发生异常

  27. 27

    如何在Spring Web应用程序运行时在spring-web-mvc中获取WebApplicationContext和DispatcherServlet的实例

  28. 28

    如何在Spring Web应用程序运行时在spring-web-mvc中获取WebApplicationContext和DispatcherServlet的实例

  29. 29

    使用web.xml中的Spring安全性和错误页面保护Spring Web MVC应用程序

热门标签

归档