首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自S3的流文件,无需本地下载

来自S3的流文件,无需本地下载
EN

Stack Overflow用户
提问于 2022-05-06 13:03:59
回答 1查看 564关注 0票数 0

是否可以通过Amazon (spring )服务流压缩文件,而不必实际下载服务中的整个文件?

对于上下文,假设在S3中有一个大文件(在gigs中),您希望让用户下载它,但是您希望在授予这些用户对文件的访问之前授权他们,而不让存储桶或对象公开。

其中一种方法是下载java服务中的文件,然后在响应中发送它。但是,如果文件太大,有时磁盘空间是不够的。

因此,问题是,是否有一种方法可以将文件从S3 ( java服务充当某种代理)流到客户端,而不实际下载它。

PS:我知道另一种选择是使用短时间的预签名URLs。

EN

回答 1

Stack Overflow用户

发布于 2022-08-24 19:19:30

您可以尝试使用StreamingOutput (JAX/泽西)。

代码语言:javascript
复制
var s3Object = baseTransferManager.getAmazonS3Client().getObject(file);
StreamingOutput stream = (outputStream -> {
    IOUtils.copy(s3Object.getObjectContent(), outputStream);
});
return Response.ok(stream, MediaType.APPLICATION_OCTET_STREAM)
    .header("Content-Disposition", "attachment; filename=\"" + fileName + \"")
    .build();

这个答案是基于JAX-RS/Jersey 2 file download - Is there a common API for server and generated client proxy中给出的信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72141925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档