2012-10-16 29 views
8

क्या धीमी फ़ाइल अपलोड अनुकरण करने के लिए कनेक्ट या मोड को जोड़ने या संपादित करने का कोई तरीका है ??एक्सप्रेसज/कनेक्ट - धीमी फ़ाइल अपलोड को अनुकरण करें

+2

यह पहले यहां पूछा गया है: http://stackoverflow.com/questions/5999882/how-would-i-limit-upload-speed-from-the-server- में नोड-js –

उत्तर

1

पहले, स्थापित node-limiter तो एक Transform धारा है कि किसी भी Stream रों थ्रोटल जाएगा बनाने के लिए:

var bucketStream = new BucketStream(1024 * 500, 'second'); // 500KB/sec 
req.pipe(bucketStream); 

अब (बजाय अनुरोध से) bucketStream से पढ़ें:

var util = require('util'); 
var Transform = require('stream').Transform; 
var TokenBucket = require('limiter').TokenBucket; 

function BucketStream(rate, interval, parentBucket, options) { 
    Transform.call(this, options); 
    this.bucket = new TokenBucket(Number.POSITIVE_INFINITY, rate, interval, parentBucket); 
} 

util.inherits(BucketStream, Transform); 

BucketStream.prototype._transform = function(chunk, encoding, callback) { 
    this.bucket.removeTokens(chunk.length, function(err) { 
     callback(err, chunk); 
    }); 
}; 

फिर अनुरोध एक ReadableStream है जितनी जल्दी हो सके, आपको केवल 500 केबी/सेक

मिलेगा मेरे सिर के ऊपर उसके ऊपर सावधान रहें :)