Node.js 프로젝트에서 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 출력을 콘솔로 가져 와서 웹 브라우저에 붙여 넣으면 필요한 파일이 다운로드됩니다.
그러나 사용하려고 getObject
하면 모든 종류의 이상한 행동이 나타납니다. 나는 그것을 잘못 사용하고 있다고 생각합니다. 이것이 내가 시도한 것입니다.
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
s 중 하나에 중단 점을 설정하면 IDE (NetBeans)에서 오류가 발생하고 데이터 값 표시를 거부합니다. 이것이 단지 IDE 일 수 있지만 .NET을 사용하는 다른 방법을 시도하기로 결정했습니다 getObject
.
aws.getObject(params).on('httpData', function(chunk){
console.log(chunk);
}).on('httpDone', function(data){
console.log(data);
});
이것은 아무것도 출력하지 않습니다. 중단 점을 넣으면 코드가 console.log
s에 도달하지 않음을 보여줍니다 . 나는 또한 시도했다 :
aws.getObject(params).on('success', function(data){
console.log(data);
});
그러나 이것은 또한 아무것도 출력하지 않으며 중단 점을 배치하면에 console.log
도달하지 않음을 보여줍니다 .
내가 도대체 뭘 잘못하고있는 겁니까?
aws
실제로 객체의 새로운 인스턴스aws.S3
객체? 또한 응답getObject()
이 http 응답으로 다시 전달되는 것입니까 아니면 파일로 파이프되고 있습니까?