Модуль node-cloudfiles - есть ли способ отслеживать ход загрузки
Если кто-то здесь знаком с модулем 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 ответа
Чарли (автор модуля) сказал мне, что это возможно, потому что он использует канал, и вы просто проверяете события данных из объекта, возвращенного из.addFile, примерно так:
reqStream.on('data', function () {
/* track progress /*
});
Всякий раз, когда вам нужно связаться с кем-то из команды nodejitsu, присоединяйтесь к каналу #nodejitsu на IRC, они действительно активны.
На момент написания этого ответа, на самом деле не существует хорошего способа добиться прогресса загрузки файлов, отправляемых в облачные файлы. Тем не менее, один из гениев nodejitsu реализовал частичную загрузку, что в моем случае устраняет необходимость в отчетах о проделанной работе. Спасибо, Брэдли.