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를 재설정하는 것을 잊어 버리는 것은 내가 어딘가에서 만들어야하는 명백한 골머리 실수의 일종입니다. 다른 제안에도 감사드립니다. 나는 파이프를 많이 사용하지는 않았지만 분명히 훨씬 더 우아합니다. –