node-cloudfiles模块-是否有跟踪上传进度的方法



如果这里有人熟悉node.js的node-cloudfiles模块,我可以在几个不同的领域使用一些帮助。不幸的是,似乎作者几乎不可能通过他们的github repo(编辑:没关系,有人联系了我,当我有某种准备好的答案时,我会发送更新。)

我将从我最基本的挑战开始:有没有一种方法可以跟踪上传的进度?我已经尝试了很多事情,但是从。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,所以没有这样的属性。

Charlie(该模块的作者)告诉我这是可能的,因为它使用管道,您只需检查从.addFile返回的对象中的数据事件,如下所示:

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

当你需要联系nodejitsu团队的成员时,加入IRC上的#nodejitsu频道,他们真的很活跃。

在写这个答案的时候,还没有一个真正的好方法来获取发送到cloudfiles的文件的上传进度。然而,nodejitsu的一位天才实现了分块上传,在我的例子中,这消除了对进度报告的需要。谢谢布拉德利。

相关内容

  • 没有找到相关文章

最新更新