在 node 中.js项目我正在try 从S3获取数据.
当我使用getSignedURL
时,一切正常:
aws.getSignedUrl('getObject', params, function(err, url){
console.log(url);
});
我的爱人是:
var params = {
Bucket: "test-aws-imagery",
Key: "TILES/Level4/A3_B3_C2/A5_B67_C59_Tiles.par"
如果我将URL输出带到控制台并将其粘贴到web浏览器中,它会下载我需要的文件.
然而,如果我try 使用getObject
,我会有各种奇怪的行为.我想我只是用错了.这就是我try 过的:
aws.getObject(params, function(err, data){
console.log(data);
console.log(err);
});
输出:
{
AcceptRanges: 'bytes',
LastModified: 'Wed, 06 Apr 2016 20:04:02 GMT',
ContentLength: '1602862',
ETag: '9826l1e5725fbd52l88ge3f5v0c123a4"',
ContentType: 'application/octet-stream',
Metadata: {},
Body: <Buffer 01 00 00 00 ... > }
null
看来这是正常的.然而,当我在其中一个console.log
上设置断点时,我的IDE(NetBeans)抛出一个错误并拒绝显示数据的值.虽然这可能只是IDE,但我决定try 其他方法来使用getObject
.
aws.getObject(params).on('httpData', function(chunk){
console.log(chunk);
}).on('httpDone', function(data){
console.log(data);
});
这不会输出任何内容.插入断点表明代码永远不会到达console.log
个断点中的任何一个.我也试过:
aws.getObject(params).on('success', function(data){
console.log(data);
});
然而,这也不会输出任何内容,放置断点表明从未达到console.log
.
我做错了什么?