错误:“ SlowDown:请降低您的请求率。”

时间:2019-10-03 12:18:28

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

我正在一个项目中,我必须上载一个包含子目录的目录,并且每个目录都有多个文件。目录中的文件总数从1万到10万。

我正在NodeJs中使用aws-sdk模块上传文件。

import * as aws from "aws-sdk";    
const filesToUpload = await getFiles(path.resolve(__dirname, `${uploadFolder}/${dir_id}`));
    return new Promise((resolve, reject) => {
        async.eachOfLimit(filesToUpload, 10, async.asyncify(async (file) => {
            let Key = file.replace(`${rootFolder}/`, '');
            Key = `${getCloudLocation(CLOUD_FOLDER)}/${Key}`;
            return new Promise((res, rej) => {
                s3.upload({
                    Key,
                    Bucket: BUCKET,
                    ContentEncoding: 'gzip',
                    Body: fs.readFileSync(file),
                    ACL: 'public-read'
                }, (err) => {
                    if (err) {
                        return rej(new Error(err));
                    }
                        res({ result: true });
                });
            });
        }), (err) => {
            if (err) {
                return reject(new Error(err));
            }
            resolve({ result: true });
        });
    });

运行代码时,出现以下错误错误:SlowDown:请降低您的请求率。

还有其他方法可以做到而又不会收到错误吗?例如将目录压缩并在上传到s3之后解压缩。

0 个答案:

没有答案