我在main.js
var s3 = require('s3');
var s3Big = new require('s3');
以及以下变量:
var client = s3.createClient({
maxAsyncS3: 20,
s3RetryCount: 10,
s3RetryDelay: 10000,
multipartUploadThreshold: 209715200,
multipartUploadSize: 209715200,
s3Options: {
accessKeyId: accessKeyIdParam,
secretAccessKey: secretAccessIdParam,
},
});
var clientBig = s3Big.createClient({
maxAsyncS3: 25,
s3RetryCount: 10,
s3RetryDelay: 10000,
multipartUploadThreshold: 209715200,
multipartUploadSize: 209715200,
s3Options: {
accessKeyId: accessKeyIdParam,
secretAccessKey: secretAccessIdParam,
},
});
当我上传大于10GB的文件时,我使用clientBig
:
if (file.stats.size > 10000000000) {
clientBig.uploadFile(params);
} else {
client.uploadFile(params);
}
问题是,如果我有2个15GB的文件和1000个4KB的文件,我注意到上传小文件会有很大的延迟。尽管事实上s3
的两个差异实体负责这次上传。
我还检查它是否与此特定计算机上的连接数有关。我发现当我从不同的.js
脚本上传小文件时,没有延迟。所以它与机器的限制无关。
如何避免它,以便上传小文件,而不受大文件上传过程的影响?