модуль node-cloudfiles - есть ли способ отслеживать ход загрузки - PullRequest
0 голосов
/ 21 декабря 2011

Если кто-то здесь знаком с модулем node-cloudfiles для node.js, я мог бы использовать некоторую помощь в нескольких различных областях.К сожалению, кажется, что авторов почти невозможно достичь через их репозиторий github (РЕДАКТИРОВАТЬ: неважно, кто-то обратился ко мне, я вышлю обновление, когда у меня будет какой-то готовый ответ.)

Я начну со своей основной задачи: есть ли способ отслеживать ход загрузки?Я перепробовал много вещей, но объект, возвращенный из команды .addFile, похоже, не содержит какой-либо статистики прогресса.

Вот базовый план того, с чем я работаю.

var readStream = fs.createReadStream(path+'.'+extension, streamopts);
var upOpts = {
    headers: {
        'content-type': 'video/'+extension,
        'content-length': totalBytes
    },
    remote: CDNfilename, 
    stream: readStream
};

//reqStream is the object returned from the 'request' module, 
//which is used by the 'cloudfiles' module.
var reqStream = cloudClient.addFile(Container.name, upOpts, function (err, uploaded) {
    if (err) { console.log(err); }

});

Сначала я подумал, что мог бы просто использовать свойство .bytesWritten, связанное с интервальным таймером, но объект не является нормальным узлом writeStream, поэтому такого свойства нет.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Чарли (автор модуля) сказал мне, что это возможно, потому что он использует канал, и вы просто проверяете события данных из объекта, возвращенного из .addFile, например:

reqStream.on('data', function () { 
  /* track progress /* 
});

Всякий раз, когда вам нужно связаться с кем-то из команды nodejitsu, присоединяйтесь к каналу #nodejitsu на IRC, они действительно активны.

0 голосов
/ 22 декабря 2011

На момент написания этого ответа на самом деле не было хорошего способа получить прогресс загрузки файлов, отправляемых в облачные файлы. Однако один из гениев nodejitsu реализовал частичную загрузку, что в моем случае устраняет необходимость в отчетах о проделанной работе. Спасибо, Брэдли.

...