Amazon S3バケット内のいくつかの小さなファイルを管理する方法としてnode.jsのknoxモジュールを試しています。すべてがうまくいきます。ファイルをアップロードしたり、ファイルをダウンロードしたりできます。ただし、定期的にファイルをダウンロードできるようにしたい。ある間隔で実行するようにコードを修正すると、上書きする代わりにダウンロードしたファイルを前のインスタンスに追加しています。knox/node.jsを使用してAmazon S3からファイルを取得するときに追加する理由
ファイルの書き込みコードやknoxの処理コードに間違いがあったかどうかはわかりません。私はいくつかの異なる書き込み方法(writeFile、writeStreamなど)を試してきました。そして、私はknoxソースコードを見てきました。私にとって明らかなことは何も問題として際立っていません。ここで私が使用しているコードです:
knox = require('knox');
fs = require('fs');
var downFile = DOWNFILE;
var downTxt = '';
var timer = INTERVAL;
var path = S3PATH + downFile;
setInterval(function()
{
var s3client = knox.createClient(
{
key: '********************',
secret: '**********************************',
bucket: '********'
});
s3client.get(path).on('response', function(response)
{
response.setEncoding('ascii');
response.on('data', function(chunk)
{
downTxt += chunk;
});
response.on('end', function()
{
fs.writeFileSync(downFile, downTxt, 'ascii');
});
}).end();
},
timer);
ああ、downTxtをリセットするために忘れ、私は私がどこかに作るする必要があります知っていた明白な骨頭ミスの一種です。他の提案もありがとう。私はずっとパイプで遊んだことはありませんが、それははるかにエレガントです。 –