0

如果这里有人熟悉 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,所以没有这个属性。

4

2 回答 2

2

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

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

每当您需要联系 nodejitsu 团队的某个人时,请加入 IRC 上的#nodejitsu 频道,他们真的很活跃。

于 2011-12-21T04:28:52.570 回答
0

在撰写此答案时,实际上并没有一种很好的方法来获取发送到云文件的文件的上传进度。然而,其中一位 nodejitsu 天才实现了分块上传,就我而言,这消除了对进度报告的需要。谢谢布拉德利。

于 2011-12-22T00:09:39.590 回答