ここに誰もnode.jsのnode-cloudfilesモジュールをよく知っていたら、いくつかの異なる分野でいくつかの助けをすることができます。残念なことに、著者はgithubリポジトリを介して到達することはほとんど不可能であるようです(EDIT:誰かが私に手を差し伸べてくれました。何らかの回答があったときにアップデートを送っています)。node-cloudfiles module - アップロードの進捗状況を追跡する方法はありますか?
I '私の最も基本的な挑戦から始めましょう:アップロードの進行状況を追跡する方法はありますか?私は多くのことを試しましたが、.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ではないので、そのようなプロパティがありません。
こんにちはalessioalex、応答ありがとうございます。私はおそらく、元の読み込みストリーム(readStream)のデータリスナーを追跡しようとしていたはずですが、予想通り(.pipeなので)一時停止しないことが判明しました。このため、元のreadStreamは、システムが破棄できるとすぐに終了し、クラウドファイルに送られるストリームが受け取ったデータを実際には表現しません。 – agentOOjoe
reqStreamでデータリスナーを試しましたが、データリスナー(これはデータリスナーを持たない従来のノードwriteStreamのように思っていました)を持っていることにも驚いています。しかし、それは奇妙なことをしている。このイベントは1回だけ発生し、data.lengthは常に小さすぎます。アップロードが完了すると、1回だけ放出されるようです。私はそれを見て続けます。 – agentOOjoe