Bir Node.js projesinde, verileri S3'ten geri almaya çalışıyorum.
Kullandığımda getSignedURL
her şey çalışıyor:
aws.getSignedUrl('getObject', params, function(err, url){
console.log(url);
});
Parametrelerim:
var params = {
Bucket: "test-aws-imagery",
Key: "TILES/Level4/A3_B3_C2/A5_B67_C59_Tiles.par"
URL çıktısını konsola alıp bir web tarayıcısına yapıştırırsam, ihtiyacım olan dosyayı indirir.
Bununla birlikte, kullanmaya çalışırsam getObject
her türlü tuhaf davranışla karşılaşırım. Sadece yanlış kullandığıma inanıyorum. Bu denediğim şey:
aws.getObject(params, function(err, data){
console.log(data);
console.log(err);
});
Çıktılar:
{
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
Yani bu düzgün çalışıyor gibi görünüyor. Ancak, e'lerden birine bir kesme noktası koyduğumda console.log
, IDE'm (NetBeans) bir hata atıyor ve verilerin değerini göstermeyi reddediyor. Bu sadece IDE olabilirken, kullanmanın başka yollarını denemeye karar verdim getObject
.
aws.getObject(params).on('httpData', function(chunk){
console.log(chunk);
}).on('httpDone', function(data){
console.log(data);
});
Bu hiçbir çıktı vermez. Bir kesme noktası koymak, kodun hiçbir zaman URL'lere ulaşmadığını gösterir console.log
. Ben de denedim:
aws.getObject(params).on('success', function(data){
console.log(data);
});
Ancak, bu aynı zamanda herhangi bir çıktı vermez ve bir kesme noktası yerleştirmek console.log
, hiçbir zaman ulaşılmadığını gösterir.
Neyi yanlış yapıyorum?
aws
aslında nesne yeni bir örneğiniaws.S3
nesne? Ayrıca, yanıtgetObject()
bir http yanıtına geri mi aktarılıyor yoksa bir dosyaya mı aktarılıyor?