2016-06-13 3 views
0

기본적으로 S3 버킷의 모든 객체를 잡는 nodejs에 작성한 경로가 있습니다. 현재, 나는 그들을 로깅하는 콘솔 일뿐입니다. 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

관련 문제