【发布时间】:2021-12-19 16:34:10
【问题描述】:
Node.js 应用程序有这么大的数据,我不想在流式传输之前先将其保存到文件中,所以我的问题是有没有办法将这些数据直接流式传输到 AWS S3?
【问题讨论】:
标签: node.js amazon-web-services amazon-s3 aws-sdk
Node.js 应用程序有这么大的数据,我不想在流式传输之前先将其保存到文件中,所以我的问题是有没有办法将这些数据直接流式传输到 AWS S3?
【问题讨论】:
标签: node.js amazon-web-services amazon-s3 aws-sdk
您可以使用@aws-sdk/lib-storage 中的Upload,这可能允许您上传缓冲区、blob 或流。
例如,如果您有一个stream,您可以将其作为Body 传递给它:
const { S3Client } = require('@aws-sdk/client-s3');
const { Upload } = require('@aws-sdk/lib-storage');
async function upload(stream, fileName, bucketName, contentType) {
const s3Client = new S3Client({ region: "us-east-1" });
const upload = new Upload({
client: s3Client,
params: {
Bucket: bucketName,
Key: fileName,
Body: stream,
ContentType: contentType,
}
});
return await upload.done();
}
【讨论】: