使用 aws- Java -sdk-s3 怎么 aws s3 上断点下载文件,那里有比较好的例子吗?

2022-07-10 03:04:57 +08:00
 fragrans23

下载文件原先使用下面的代码:

S3Object object = s3.getObject(bucketName, fileKey);
        S3ObjectInputStream objectContent = object.getObjectContent();
        OutputStream out =null;
        try {
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition",
                    "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName));
            out = response.getOutputStream();
            byte[] buf = new byte[1024];
            int len;
            while ((len = objectContent.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            response.flushBuffer();

s3 内有这么一个方法可以获取文件某一断数据:

etObjectRequest rangeRequest = new GetObjectRequest(bucketName, fileKey)
                .withRange(start, end);
        S3Object object = s3.getObject(rangeRequest);
        S3ObjectInputStream objectContent = object.getObjectContent();

如果下载了某段数据,怎么整合起来形成一个完整文件? 思路应该是下载各个分片合并,或在某个临时文件后面追加内容?哪里有比较完整的代码吗?希望各位朋友能够帮忙解答

1887 次点击
所在节点    Amazon Web Services
1 条回复
lmshl
2022-07-10 16:18:56 +08:00
https://docs.oracle.com/javase/7/docs/api/java/nio/channels/SeekableByteChannel.html

SeekableByteChannel position(long newPosition)
// Sets this channel's position.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/865193

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX