如果这里有人熟悉node.js的node-cloudfiles模块,我可以在几个不同的领域使用一些帮助。不幸的是,似乎作者几乎不可能通过他们的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,因此没有这样的属性。
答案 0 :(得分:2)
Charlie(模块的作者)告诉我这是可能的,因为它使用了一个管道,你只需检查从.addFile返回的对象的数据事件,如下所示:
reqStream.on('data', function () {
/* track progress /*
});
每当你需要联系来自nodejitsu团队的人时,加入IRC上的#nodejitsu频道,他们真的很活跃。
答案 1 :(得分:0)
在撰写此答案时,没有一种很好的方法可以获得发送到云文件的文件的上传进度。然而,其中一个nodejitsu天才实现了分块上传,在我的情况下,它不需要进度报告。谢谢布拉德利。