আমি নোড.জেএস ব্যবহার করে চিত্রগুলি ডাউনলোড করতে একটি স্ক্রিপ্ট লেখার চেষ্টা করছি। আমার এ পর্যন্ত যা আছে:
var maxLength = 10 // 10mb
var download = function(uri, callback) {
http.request(uri)
.on('response', function(res) {
if (res.headers['content-length'] > maxLength*1024*1024) {
callback(new Error('Image too large.'))
} else if (!~[200, 304].indexOf(res.statusCode)) {
callback(new Error('Received an invalid status code.'))
} else if (!res.headers['content-type'].match(/image/)) {
callback(new Error('Not an image.'))
} else {
var body = ''
res.setEncoding('binary')
res
.on('error', function(err) {
callback(err)
})
.on('data', function(chunk) {
body += chunk
})
.on('end', function() {
// What about Windows?!
var path = '/tmp/' + Math.random().toString().split('.').pop()
fs.writeFile(path, body, 'binary', function(err) {
callback(err, path)
})
})
}
})
.on('error', function(err) {
callback(err)
})
.end();
}
আমি তবে এটিকে আরও দৃust় করতে চাই:
- এমন কি লাইব্রেরি রয়েছে যা এটি করে এবং এটি আরও ভাল করে?
- প্রতিক্রিয়া শিরোনামগুলি মিথ্যা বলে (দৈর্ঘ্য সম্পর্কে, সামগ্রীর ধরণের সম্পর্কে) কী এমন সুযোগ রয়েছে?
- আমার কি অন্যান্য স্ট্যাটাস কোডগুলি যত্নশীল হওয়া উচিত? পুনঃনির্দেশগুলি দিয়ে আমাকে বিরক্ত করা উচিত?
- আমি মনে করি যে আমি কোথাও পড়েছি যে
binary
এনকোডিংটি হ্রাস করা হচ্ছে। আমি তখন কি করব? - আমি কীভাবে এটি উইন্ডোতে কাজ করতে পারি?
- আপনি এই স্ক্রিপ্ট আরও ভাল করতে পারেন অন্য কোনও উপায়?
কেন: ইমগারের অনুরূপ বৈশিষ্ট্যের জন্য যেখানে ব্যবহারকারীরা আমাকে একটি ইউআরএল দিতে পারে, আমি সেই চিত্রটি ডাউনলোড করি এবং একাধিক আকারে চিত্রটি পুনরায় স্থাপন করি।