Node.jsでS3内のデータをダウンロードするのではできたけど、次の処理に繋げれない。。。
Node.jsで、S3内のデータをダウンロードする処理を書いた。
実際は、次のステップのことをやりたいんだけど、stream関連が理解できていないなぁーっと痛感する。。。
これを、FTP接続して、他のサーバにアップロードしたいってのが、やりたいことですが。。。
ダウンロードしたファイルをreadablestreamに読み込んで、pipeして、アップするとか、
そもそも、メモリにwritablestreamでかいて、それをアップロードするとか、
いろいろわかっていないので、どなたかご教授頂けますと幸いです。m(_ _)m
aws-sdkは導入済みで、以下を参照して、事前準備済みが前提です。
http://aws.amazon.com/jp/sdkfornodejs/
コードはこんな感じ。
var AWS = require('aws-sdk'); var _ = require('lodash'); var fs = require('fs'); var path = require('path'); AWS.config.loadFromPath('./config.json'); var s3 = new AWS.S3(); // バケット内のobjectを取得(bucket名は各自のbucket名を設定してください) s3.listObjects({Bucket: 'your_bucket_name'}, function (err, data) { if(_.isNull(err)){ _.forEach(data.Contents, function(object){ if(object.Size > 0){ //console.log(object); //console.log(path.dirname(object.Key)); //console.log(path.basename(object.Key)); var ws = fs.createWriteStream(path.basename(object.Key), {flags: 'a'}); s3.getObject({Bucket: 'your_bucket_name', Key:object.Key}, function(err, result){ ws.write(result.Body); }); } }); } });