【问题标题】:Is there a way to stream large data directly to S3 files instead saving locally first?有没有办法将大数据直接流式传输到 S3 文件,而不是先在本地保存?
【发布时间】:2021-12-19 16:34:10
【问题描述】:

Node.js 应用程序有这么大的数据,我不想在流式传输之前先将其保存到文件中,所以我的问题是有没有办法将这些数据直接流式传输到 AWS S3?

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    您可以使用@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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      相关资源
      最近更新 更多