ব্লব ইউআরএল (রেফ ডাব্লু 3 সি , অফিসিয়াল নাম) বা অবজেক্ট-ইউআরএলস (রেফারেন্স এমডিএন এবং পদ্ধতির নাম) একটি ব্লব বা কোনও ফাইলের সাথে ব্যবহার করা হয় ।
src = "blob: https: //crap.crap " আমি ভিডিওটির এসআরসি-তে থাকা ব্লব ইউআরএলটি খুললাম এটি একটি ত্রুটি দিয়েছে এবং আমি খুলতে পারি না তবে কীভাবে সম্ভব এটি এসআরসি ট্যাগের সাথে কাজ করছি?
ব্লব ইউআরএলগুলি কেবল ব্রাউজারের মাধ্যমে অভ্যন্তরীণভাবে তৈরি করা যায়। URL.createObjectURL()
ব্লব বা ফাইল অবজেক্টের একটি বিশেষ রেফারেন্স তৈরি করবে যা পরে ব্যবহার করে প্রকাশ করা যেতে পারে URL.revokeObjectURL()
। এই ইউআরএলগুলি কেবলমাত্র স্থানীয়ভাবে ব্রাউজারের একক দৃষ্টিতে এবং একই সেশনে (যেমন পৃষ্ঠা / নথির জীবন) ব্যবহার করা যেতে পারে।
ব্লব ইউআরএল কী?
কেন এটি ব্যবহার করা হয়?
ব্লব ইউআরএল / অবজেক্ট ইউআরএল হ'ল একটি ছদ্ম প্রোটোকল যা ব্লব এবং ফাইলের অবজেক্টগুলিকে ইমেজ, বাইনারি ডেটার জন্য লিঙ্কগুলি ডাউনলোড করার জন্য এবং এমন কিছুর জন্য URL উত্স হিসাবে ব্যবহার করতে দেয়।
উদাহরণস্বরূপ, আপনি কোনও চিত্র অবজেক্ট কাঁচা বাইট-ডেটা হস্তান্তর করতে পারবেন না কারণ এটি কী করতে পারে তা এটি জানেন না। এটি ইউআরএল মাধ্যমে লোড করা উদাহরণ চিত্র (যা বাইনারি ডেটা হয়) প্রয়োজন। এটি উত্স হিসাবে একটি URL প্রয়োজন যে কোনও ক্ষেত্রে প্রযোজ্য। বাইনারি ডেটা আপলোড করার পরিবর্তে, এটি আবার কোনও URL এর মাধ্যমে পরিবেশন করুন কোনও সার্ভারের মাধ্যমে না গিয়ে সরাসরি ডেটা অ্যাক্সেস করতে সক্ষম হওয়ার জন্য অতিরিক্ত স্থানীয় পদক্ষেপ ব্যবহার করা ভাল।
এটি ডেটা-ইউআরআই-এর আরও ভাল বিকল্প যা বেস -64৪ হিসাবে এনকোড করা স্ট্রিংগুলি রয়েছে । ডেটা-ইউআরআইয়ের সমস্যাটি হ'ল প্রতিটি চর জাভাস্ক্রিপ্টে দুটি বাইট নেয়। এর উপরে বেস - 64 এনকোডিংয়ের কারণে একটি 33% যুক্ত করা হয়েছে। ব্লবগুলি খাঁটি বাইনারি বাইট-অ্যারে হয় যা ডেটা-ইউআরআইয়ের মতো কোনও উল্লেখযোগ্য ওভারহেড রাখে না, যা এগুলি হ্যান্ডেল করতে দ্রুত এবং ছোট করে তোলে।
আমি কি একটি সার্ভারে আমার নিজের ব্লব ইউআরএল তৈরি করতে পারি?
না, ব্লব ইউআরএল / অবজেক্ট ইউআরএলগুলি কেবল ব্রাউজারে অভ্যন্তরীণভাবে তৈরি করা যায়। আপনি ব্লবগুলি তৈরি করতে এবং ফাইল রিডার এপিআইয়ের মাধ্যমে ফাইল অবজেক্ট পেতে পারেন, যদিও বিএলএব-র অর্থ বাইনারি লার্জ ওবজেক্ট এবং বাইট-অ্যারে হিসাবে সঞ্চিত। কোনও ক্লায়েন্ট ডেটাটিকে অ্যারেবফার বা ব্লব হিসাবে প্রেরণের জন্য অনুরোধ করতে পারে। সার্ভারের খাঁটি বাইনারি ডেটা হিসাবে ডেটা প্রেরণ করা উচিত। বাইনারি অবজেক্টগুলি বর্ণনা করার জন্য ডেটাবেসগুলি প্রায়শই ব্লব ব্যবহার করে এবং সংক্ষেপে আমরা বাইট-অ্যারেগুলি সম্পর্কে মূলত কথা বলছি।
আপনার যদি অতিরিক্ত বিবরণ থাকে
আপনাকে বাইনারি ডেটা BLOB অবজেক্ট হিসাবে সজ্জিত করতে URL.createObjectURL()
হবে , তার জন্য এর জন্য স্থানীয় ইউআরএল তৈরি করতে ব্যবহার করুন :
var blob = new Blob([arrayBufferWithPNG], {type: "image/png"}),
url = URL.createObjectURL(blob),
img = new Image();
img.onload = function() {
URL.revokeObjectURL(this.src); // clean-up memory
document.body.appendChild(this); // add image to DOM
}
img.src = url; // can now "stream" the bytes
মনে রাখবেন যে URL
ওয়েবকিট-ব্রাউজারগুলিতে উপসর্গ থাকতে পারে, তাই ব্যবহার করুন:
var url = (URL || webkitURL).createObjectURL(...);