NodeJS:使用流将图像文件上传到s3存储桶

时间:2020-04-11 07:15:27

标签: node.js express amazon-s3 pipe aws-sdk

我正在使用包括图片上传在内的express开发REST API。
我需要将图像文件数据作为流获取,然后将该流通过管道传输到s3存储桶。 (由于图像文件可能很大,无法容纳到内存中,因此我希望将其直接移到s3存储桶中)。 我正确地创建了图像下载路径,如下所示:

router.get('/', (req, res) => {
    let image_key = "shop/ER-2.jpeg";
    let read_stream = s3.getObject({
            Bucket: process.env.AWS_S3_BUCKET,
            Key: image_key,
        }
    ).createReadStream();
    read_stream.on('close', () => {
        res.end()
    });
    read_stream.on('error', () => {
        res.status(502).end();
    });
    read_stream.pipe(res);
});

但是当从req.files上传文件时,我不明白如何从请求对象中传递管道(或获取读取流)。谢谢您的帮助。

0 个答案:

没有答案