2016-03-27 19 views
0

私はs3fsにノードモジュールamazon s3への画像アップロードにS3FSノードモジュールを使用する方法s3から画像URLを取得するにはどうすればよいですか?

var fs = require('fs'); 
var multiParty = require('connect-multiparty'), 
    multiPartyMiddleware = multiParty(); 

var S3FS = require('s3fs') 
var s3fsImp1 = new S3FS(process.env.BUCKET_NAME, { 
    accessKeyId: process.env.AWS_ACCESS_KEY, 
    secretAccessKey: process.env.AWS_SECRET_KEY 
}); 

module.exports = function(app, express) { 
    app.use(multiPartyMiddleware) 

    app.post('/upload', (req, res) => { 
    var files = req.files 
    var fileCount = Object.keys(req.files).length 
    var fileUploadCount = 0 
    for (var file in files) { 
     (function(file) { 
     var stream = fs.createReadStream(file.path); 
     s3fsImp1.writeFile(file.name, stream).then(function() { 
      fileUploadCount++; 
      fs.unlink(file.path, function(err) { 
      if (err) { 
       console.error(err); 
       res.send(400) 
      } 
      }); 
      if (fileUploadCount === fileCount) { 
      res.send('successful uploading').status(200); 
      } 
     }); 
     })(files[file]) 
    } 
    }) 
} 

を使用しており、それはアマゾンS3に画像をアップロードする基本的なアプリケーションのための罰金働いてアマゾンS3に画像をアップロード処理するために、この関数を書きました。しかし、私はイメージURLを返す方法を考え出していませんでした。 1. db内のイメージURLに参照を保存します。

どのようにこの機能を変更できますか?イメージURLをs3に送信した後に取得しますか?

答えて

0

私が知る限り、ライブラリにはその機能がありません。しかし、getPathという関数呼び出しが役に立ちます。

を助け

var s3fsImp1 = new S3FS(process.env.BUCKET_NAME, options); 
var fsImplStyles = s3fsImp1.getPath(file.name); 

// Change eu-west-1 for your region 
var url = 'https://s3-eu-west-1.amazonaws.com/' + fsImplStyles; 

・ホープ

関連する問題