我有一个我在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存储桶中没有更多对象?
我怎么知道我什么时候有了所有物品?
谢谢!
答案 0 :(得分: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!');
}
}
})
如果您从错误优先方法中收到任何错误,请尝试记录。