Bir Node.js projesinde, verileri S3'ten geri almaya çalışıyorum.
Kullandığımda getSignedURLher ş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 getObjecther 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?
awsaslında nesne yeni bir örneğiniaws.S3nesne? Ayrıca, yanıtgetObject()bir http yanıtına geri mi aktarılıyor yoksa bir dosyaya mı aktarılıyor?