node.jsのPromisesを使用してローカルシステムのs3バケットからイメージファイルをダウンロードしたいnode.jsのPromiseを使ってs3バケットからイメージをダウンロード
var params = {
Bucket: bucket_name',
Key: 'key'
};
var fileStream = fs.createWriteStream('path/to/file.jpg');
私は
s3.getObject(params).createReadStream.pipe(fileStream);
作業しかし、私は私のコードをしたいされ、これを試してみました、私はすべての画像がダウンロードされなければならないことを確認するための約束を使用する必要があり、この
return s3.getObject(params).promise()
.then(function(data) {
//console.log(data.Body);
// No idea about this section
})
.catch(function(err) {
throw err;
});
のように見えます。このコードは、具体的に動作するかどう
const B = require('bluebird');
function downloadFromS3 (object) {
var p = B.Promise.defer();
var stream = s3.getObject(params).createReadStream()
stream.pipe(fileStream);
stream.on('error', (e) => p.reject(e))
stream.on('end',() => p.resolve())
return p.promise;
}
downloadFromS3(params)
.then(() => console.log('finished'))
.catch(() => console.log('failed'))
わからないが、しかしそれがあなたの方向性を与えることがあります。
任意の約束ライブラリを使用して、約束(ブルーバードのような)にs3コードをラップすることができます。 –
しかし、私はそれを使用してファイルを作成するためにそれをストリームしなければならないと思います –
あなたはストリームを使わずにファイルに保存できます.S3はバイト配列を返すことができますファイル –