2016-01-11 9 views
5

S3に画像をアップロードした後、ファイルのリンク(またはファイル名も正常です)を取得します。私は下のコードを使用してアップロードし、それは働いた。S3 putObjectコールバックが期待されたオブジェクトを返さない

s3Bucket.putObject(data, function(err, data){ 
     if (err) { 
      console.log(err); 
      res.send({result:0}); 
     } else { 
      res.send({result:1}); 
      console.log(data) 
     } 
    }); 

しかし、コールバックデータには1つのプロパティ、etagしかありません。ドキュメントには他の目的があることが明確に述べられているので、アップロードされたファイルのパスを取得するにはどうすればよいですか?

答えて

3

docsは、オブジェクト・キーがdataコールバック・パラメータで使用可能であることを意味しません。

バケットの名前とリクエストデータのparams.Keyプロパティに基づいて、作成されたオブジェクトのS3 URIを作成することができます。

はここ

s3Bucket.putObject(data, function(err, data) { 
    var params = this.request.params; 
    var region = this.request.httpRequest.region; 
    console.log('s3://' + params.Bucket + '/' + params.Key); 
    console.log('https://s3-' + region + '.amazonaws.com/' + params.Bucket + '/' + params.Key) 
}); 
+0

興味深いputObjectコールバック内からそれを行う方法の一例です!本当にありがとう! –

+0

このURLはいつもそうでしょうか? sdkからURL(署名されていない)を取得する方法がありますか? –

関連する問題