我使用s3
npm包将文件上传到S3。
为了推迟上传文件到S3的延迟,我想创建两个线程池:一个将处理大于650 MB的文件,另一个将处理所有小于或等于650 MB的文件。 / p>
这是我的代码:
var s3 = require('s3');
var client = s3.createClient({
maxAsyncS3: 20, // this is the default
s3RetryCount: 3, // this is the default
s3RetryDelay: 1000, // this is the default
multipartUploadThreshold: 209715200, // this is the default (20 MB)
multipartUploadSize: 209715200, // this is the default (15 MB)
...
var clientBig = s3.createClient({
maxAsyncS3: 25,
s3RetryCount: 3, // this is the default
s3RetryDelay: 1000, // this is the default
multipartUploadThreshold: 209715200, // this is the default (20 MB)
multipartUploadSize: 209715200, // this is the default (15 MB)
在功能上传中,我从fs.stat
获取统计信息:
if (stats != undefined && stats.size != undefined && stats.size > 650000000)
uploader = clientBig.uploadFile(params);
else
uploader = client.uploadFile(params);
//Upload file process..
问题是,当我获得大于7GB的文件时,我看到所有与S3的连接都被占用(因为maxAsyncS3
定义),而小于650MB的文件仍在等待空闲连接,甚至认为它在其他包中(并且拥有自己的maxAsyncS3
定义)