使用 fastify 将大文件下载为多部分

use fastify to download big files as multipart

我有一个使用分段下载从 S3 下载大对象的代码。我现在正在开发一个微服务,它会隐藏所有 s3 操作,并且在未来会让我灵活地更改为任何对象 store.I 已经使用 fastify 创建了一个 nodejs 服务,我如何添加对多部分下载的支持使用 fastify?

您也应该在服务器端和客户端重写 AWS-S3 服务的部分逻辑。

GetObject 接受 Range header 这将限制该文件的下载。

所以客户端需要知道有多少块组成一个文件,使用ListParts API 通常。然后它可以调用 GetObject 使用范围参数:

 var params = {
  Bucket: "examplebucket", 
  Key: "SampleFile.txt", 
  Range: "bytes=0-9"
 };
 s3.getObject(params, function(err, data) {...

所以你的 Fastify 服务器最晚应该代理这两个服务让客户端下载 同时将文件的许多部分合并。