2016-06-13 20 views
0

私はnodejsで構築したルートを持っていますが、基本的にS3バケット内のすべてのオブジェクトを取得します。現時点では、私はそれらをログアウトするコンソールです。S3バケットからオブジェクトを取得

s3.listObjects({Bucket: 'store-generated-images'}).eachPage(function(err, data) { 

    console.log(data.Contents); 

}) 

これからの私のように見えるバックobjectを得る:私はそれでエラーになるまで私の端末では、これらの表示のリストを取得

 { DisplayName: 'servers', 
     ID: '58af203151c51eddf2fdf1679211e0b91d274a8fda23f58280f9b06371e436f7' } }, 
    { Key: 'generatedi_images/e7_zysitb2tp8nr2t7cymjlf04emyzbd8_q02_.png', 
    LastModified: Sat Apr 23 2016 10:16:46 GMT+0100 (BST), 
    ETag: '"33ff7046c9ffe29775672825ca16c1de"', 
    Size: 499304, 
    StorageClass: 'STANDARD', 
    Owner: 

。私のエラーは:

/path/to/node_modules/aws-sdk/lib/request.js:31 
      throw err; 
      ^

TypeError: Cannot read property 'Contents' of null 

私の質問です。このエラーは、S3バケットにオブジェクトがなくなることを意味しますか?

すべてのオブジェクトを取得したことをどのように知ることができますか?

ありがとうございます!

答えて

1

エラーがS3にそれ以上データがないことを意味するのかどうかわかりません。しかし、私は、あなたが以下のように、より効率的なコードを使用することができると思う:

s3.listObjects({Bucket: 'store-generated-images'}).eachPage(function(err, data) { 
    if(err) { 
     console.log('Error in fetching data' + JSON.stringify(err)); 
    } else { 
     if(data && data.Contents) { 
      console.log(data.Contents); 
     } else { 
      console.log('No data in S3!'); 
     } 
    } 
}) 

ちょうどあなたがエラー-最初の方法からいずれかのエラーを取得している場合はログインしてみてください。

+0

乾杯!ええ、私はあなたのやり方でそれを扱う方がはるかに優れていると思います。私はドキュメンテーションを見ていましたが、S3バケット内のすべてのオブジェクトを取得したかどうかを調べる方法を教えてくれたものは見つかりませんでした – PourMeSomeCode

関連する問題