Слияние кода завершено, страница обновится автоматически
const request = require('request');
const progress = require('request-progress');
const fs = require('fs');
process.send = process.send || function(msg) {
console.log(msg)
};
const download = (key, url, filepath, range_start, range_end, throttle, headers) => {
let d_err;
headers = Object.assign({
"Range":'bytes=' + range_start + '-' + range_end
}, headers);
let r = request(url, {
'headers': headers
});
progress(r, {
'throttle': throttle
})
.on('response', response => {
if (response.statusCode < 200 || response.statusCode > 210) {
r.abort();
d_err = 'http status code: ' + response.statusCode;
process.send({
'key': key,
'err': d_err
});
}
})
.on('progress', function(state) {
process.send({
'key': key,
'progress': state
});
})
.on('error', function(err) {
d_err = err;
process.send({
'key': key,
'err': err
});
})
.on('end', function() {
process.send({
'key': key,
'finish': true,
'err': d_err
});
})
.pipe(fs.createWriteStream(filepath));
}
if (module.parent) {
exports.download = download;
} else {
if (process.argv.length < 8) {
console.error('invalidate process arguments');
} else {
let [_1, _2, key, url, filepath, range_start, range_end, throttle, headers] = process.argv;
range_start = parseInt(range_start);
range_end = parseInt(range_end);
throttle = parseInt(throttle);
headers = JSON.parse(headers)
download(key, url, filepath, range_start, range_end, throttle, headers);
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )