নোড.জেএস প্রকল্পে আমি এস 3 থেকে ডেটা ফেরত পাওয়ার চেষ্টা করছি।
যখন আমি ব্যবহার করি 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 আউটপুট কনসোলে নিয়ে যাই এবং এটি একটি ওয়েব ব্রাউজারে পেস্ট করি তবে এটি আমার প্রয়োজনীয় ফাইলটি ডাউনলোড করে download
যাইহোক, আমি যদি চেষ্টা করার চেষ্টা করি তবে আমি 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আমার আইডিই (নেটবিয়ানস) একটি ত্রুটি ছুড়ে দেয় এবং ডেটার মান প্রদর্শন করতে অস্বীকার করে। যদিও এটি কেবল আইডিই হতে পারে, আমি অন্য উপায় ব্যবহারের চেষ্টা করার সিদ্ধান্ত নিয়েছি 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কখনই পৌঁছেছে না।
আমি কি ভুল করছি?
awsবিষয়বস্তু আসলে কি বস্তুর নতুন উদাহরণaws.S3? এছাড়াও, কোনও প্রতিক্রিয়া কিgetObject()কোনও HTTP প্রতিক্রিয়ায় ফেরত দেওয়া থেকে বা এটি কোনও ফাইলে পাইপ করা হচ্ছে?