Next.js-এর মাধ্যমে Azure-এ ব্লব ডাউনলোডগুলি পরিচালনা করা
সাথে কাজ করছে আজুর ব্লব স্টোরেজ একটি মধ্যে একটি ডাউনলোডযোগ্য URL তৈরি করতে পরবর্তী.js অ্যাপ্লিকেশন কখনও কখনও অপ্রত্যাশিত ফলাফল হতে পারে. কন্টেন্ট পুনরুদ্ধার এবং রেন্ডার করার সময় ডেভেলপাররা প্রায়ই চ্যালেঞ্জের সম্মুখীন হন, বিশেষ করে যখন Azure-এর ব্লব স্টোরেজ পরিষেবা থেকে ছবির মতো বাইনারি ডেটা নিয়ে কাজ করেন।
এমন পরিস্থিতিতে যেখানে আপনাকে Azure থেকে একটি ছবি বা ফাইল ডাউনলোড করতে হবে, জাভাস্ক্রিপ্ট SDK blockBlobClient.download() এর মত বিভিন্ন পদ্ধতি অফার করে। যাইহোক, ডাউনলোড করা বিষয়বস্তু সঠিকভাবে প্রদর্শিত হচ্ছে তা নিশ্চিত করা, যেমন ব্লব থেকে একটি বৈধ URL তৈরি করা, সবসময় সহজবোধ্য নাও হতে পারে। একটি অস্থায়ী URL ব্যবহারকারীদের নির্বিঘ্নে ফাইলগুলি প্রিভিউ বা ডাউনলোড করার অনুমতি দেওয়া উচিত, কিন্তু ব্লব প্রতিক্রিয়া ভুলভাবে পরিচালনা করার ফলে ছবিগুলি ভাঙা বা অব্যবহারযোগ্য লিঙ্ক হতে পারে।
ভুল ব্লব হ্যান্ডলিং বা ইউআরএল জেনারেশন কৌশলের কারণে প্রায়ই এই সমস্যা দেখা দেয়। নির্দিষ্ট ব্রাউজার বা জাভাস্ক্রিপ্ট মেকানিজম সঠিকভাবে ব্যবহার না করা হলে ব্লব ডেটাকে অবজেক্ট ইউআরএলের মতো ব্যবহারযোগ্য ফর্মে রূপান্তর করা কঠিন হতে পারে। ব্লবগুলিকে অস্থায়ী URL-এ রূপান্তর করার সঠিক পদ্ধতি বোঝা এই সমস্যাটি কাটিয়ে ওঠার মূল চাবিকাঠি।
এই নিবন্ধে, আমরা ব্লব ডাউনলোড পরিচালনার সাথে সম্পর্কিত সাধারণ সমস্যাগুলি অন্বেষণ করব, বর্তমান কোডের সম্ভাব্য ভুলগুলি তদন্ত করব এবং এখান থেকে ডাউনলোডযোগ্য সামগ্রীর জন্য বৈধ এবং কার্যকরী URL তৈরি করতে আপনাকে সাহায্য করার জন্য স্পষ্ট সমাধান প্রদান করব আজুর ব্লব স্টোরেজ আপনার মধ্যে পরবর্তী.js আবেদন
আদেশ | ব্যবহার এবং বর্ণনার উদাহরণ |
---|---|
blockBlobClient.download() | একটি প্রতিক্রিয়া স্ট্রীম হিসাবে একটি ব্লবের সামগ্রী ডাউনলোড করে৷ এটি Azure-এর ব্লব স্টোরেজ SDK-এর জন্য নির্দিষ্ট, যা ডেভেলপারদের দক্ষতার সাথে স্টোরেজ পাত্র থেকে বাইনারি ডেটা পুনরুদ্ধার করতে দেয়। |
URL.createObjectURL() | একটি অস্থায়ী URL তৈরি করে যা একটি ইন-মেমরি ব্লব অবজেক্টের দিকে নির্দেশ করে। ডাউনলোড লিঙ্ক তৈরি করতে বা সার্ভারে আপলোড না করে ছবিগুলির মতো মিডিয়া সামগ্রী প্রদর্শনের জন্য দরকারী৷ |
response.blobBody | ব্লব ডাউনলোড অপারেশন থেকে প্রতিক্রিয়ার মূল অংশ অ্যাক্সেস করে। ব্লবের বাইনারি ডেটা পুনরুদ্ধার করতে এবং এটিকে একটি ব্যবহারযোগ্য বিন্যাসে রূপান্তর করার জন্য এই বৈশিষ্ট্যটি অপরিহার্য। |
readableStreamBody.pipe() | একটি পঠনযোগ্য স্ট্রীম থেকে ডাটা সরাসরি অন্য স্ট্রীমে স্ট্রিম করে, যেমন একটি HTTP প্রতিক্রিয়া। এটি মেমরিতে সম্পূর্ণরূপে লোড না করেই বড় ফাইলগুলিকে দক্ষতার সাথে স্থানান্তর করতে সহায়তা করে৷ |
BlobServiceClient.fromConnectionString() | একটি সংযোগ স্ট্রিং ব্যবহার করে ব্লব পরিষেবা ক্লায়েন্ট শুরু করে। এই কমান্ডটি Azure স্টোরেজ SDK-এর জন্য নির্দিষ্ট এবং ব্লব স্টোরেজ পরিষেবাগুলিতে অ্যাক্সেস প্রমাণীকরণের জন্য প্রয়োজন। |
containerClient.getBlockBlobClient() | একটি পাত্রের মধ্যে একটি নির্দিষ্ট ব্লবের জন্য একটি ক্লায়েন্ট অবজেক্ট পুনরুদ্ধার করে। পৃথক ব্লবগুলিতে ডাউনলোড, আপলোড বা মুছে ফেলার মতো ক্রিয়াকলাপ সম্পাদনের জন্য এটি অপরিহার্য। |
jest.spyOn() | পরীক্ষার সময় ফাংশনগুলিকে উপহাস করতে বা গুপ্তচরবৃত্তি করতে ব্যবহৃত একটি জেস্ট ফাংশন। এটি প্রকৃত কোড নির্বাহকে প্রভাবিত না করে আচরণ এবং মনিটর ফাংশন কলগুলিকে অনুকরণ করতে সহায়তা করে। |
window.open() | নির্দিষ্ট URL সহ একটি নতুন ব্রাউজার উইন্ডো বা ট্যাব খোলে৷ এই ক্ষেত্রে, এটি তৈরি করা ব্লব URL খুলতে ব্যবহার করা হয়, ব্যবহারকারীকে সামগ্রী দেখতে বা ডাউনলোড করার অনুমতি দেয়। |
request(app).get() | পরীক্ষায় HTTP GET অনুরোধ অনুকরণ করতে সুপারটেস্ট লাইব্রেরির সাথে ব্যবহার করা হয়। এটি নিশ্চিত করতে সাহায্য করে যে ব্লব ডাউনলোড করার জন্য এক্সপ্রেস রুট বিভিন্ন পরিস্থিতিতে সঠিকভাবে কাজ করে। |
Next.js-এ কিভাবে অস্থায়ী ব্লব ইউআরএল তৈরি ও পরিচালনা করবেন
প্রদত্ত স্ক্রিপ্টগুলি প্রদর্শন করে যে কিভাবে Azure এর মাধ্যমে পুনরুদ্ধার করা ব্লব থেকে ডাউনলোডযোগ্য URL তৈরি করা যায় ব্লব স্টোরেজ SDK এবং একটি মধ্যে এটি ব্যবহার করুন পরবর্তী.js আবেদন ফ্রন্ট-এন্ড উদাহরণে, আমরা পদ্ধতিটি ব্যবহার করেছি blockBlobClient.download() ব্লব সামগ্রী পুনরুদ্ধার করতে। এই ফাংশনটি একটি প্রতিক্রিয়া প্রদান করে যাতে বাইনারি ডেটা থাকে, যা অবশ্যই একটি ব্যবহারযোগ্য URL-এ রূপান্তরিত করা উচিত। আমরা কল করে এটি অর্জন করেছি URL.createObjectURL(), যা ব্লবের জন্য একটি অস্থায়ী URL তৈরি করে, ব্যবহারকারীদের অতিরিক্ত সার্ভারের অনুরোধ ছাড়াই সামগ্রী ডাউনলোড বা পূর্বরূপ দেখতে সক্ষম করে৷
দ্বিতীয় উদাহরণটি স্ট্রিমিংয়ের মাধ্যমে ব্লব ডেটা পরিবেশন করার জন্য Node.js এবং Express ব্যবহার করে একটি ব্যাক-এন্ড বাস্তবায়ন হাইলাইট করে। এই পদ্ধতিটি নিশ্চিত করে যে এমনকি বড় ফাইলগুলি ওভারলোডিং মেমরি ছাড়াই দক্ষতার সাথে স্থানান্তরিত হয়। দ readableStreamBody.pipe() পদ্ধতিটি ব্লব বিষয়বস্তুকে সরাসরি HTTP প্রতিক্রিয়াতে প্রবাহিত করে, সর্বোত্তম কর্মক্ষমতা প্রদান করে। সার্ভার কোডে মৌলিক ত্রুটি পরিচালনা, ডাউনলোড ব্যর্থ হলে লগিং ত্রুটি এবং উপযুক্ত স্ট্যাটাস কোডের সাথে প্রতিক্রিয়া অন্তর্ভুক্ত রয়েছে। এটি উত্পাদন পরিবেশের জন্য উপযুক্ত করে তোলে যেখানে নির্ভরযোগ্যতা এবং মাপযোগ্যতা গুরুত্বপূর্ণ।
আমরা ব্যবহার করে ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড উভয় সমাধানের জন্য ইউনিট পরীক্ষা অন্তর্ভুক্ত করেছি ঠাট্টা কাঠামো এই পরীক্ষাগুলি ব্লব হ্যান্ডলিং কোডের আচরণকে যাচাই করে, এটি নিশ্চিত করে যে তৈরি করা URL "blob:" দিয়ে শুরু হয় এবং ত্রুটিগুলি সুন্দরভাবে পরিচালনা করে৷ ব্যাক-এন্ড পরীক্ষায়, দ সুপারটেস্ট লাইব্রেরিটি এক্সপ্রেস রুটে HTTP অনুরোধগুলি অনুকরণ করতে ব্যবহৃত হয়েছিল, এটি যাচাই করে যে এটি সফল এবং ব্যর্থ ডাউনলোড প্রচেষ্টা উভয়েরই সঠিকভাবে সাড়া দেয়। বাগ প্রতিরোধ করতে এবং বিভিন্ন পরিবেশে সিস্টেমের নির্ভরযোগ্যতা নিশ্চিত করতে ইউনিট পরীক্ষা অপরিহার্য।
ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড উভয় পদ্ধতির সমন্বয় করে, এই স্ক্রিপ্টগুলি একাধিক পরিস্থিতিতে কভার করে যেখানে ব্লব ডেটা প্রয়োজন হতে পারে। ব্রাউজারে সরাসরি সামগ্রী প্রদর্শন করা হোক বা স্ট্রিমিংয়ের মাধ্যমে বড় ফাইল ডাউনলোড করা হোক না কেন, প্রদত্ত সমাধানগুলি বিভিন্ন ব্যবহারের ক্ষেত্রে অ্যাপ্লিকেশনটি সঠিকভাবে কাজ করে তা নিশ্চিত করার জন্য ডিজাইন করা হয়েছে। মডুলার কোড এবং অপ্টিমাইজ করা পদ্ধতির ব্যবহার নিশ্চিত করে যে কোডটি বজায় রাখা সহজ, স্কেলযোগ্য এবং সুরক্ষিত, অ্যাজুরে ব্লব স্টোরেজ পরিচালনার জন্য একটি সম্পূর্ণ এবং পুনরায় ব্যবহারযোগ্য সমাধান প্রদান করে। পরবর্তী.js পরিবেশ
Next.js এর সাথে Azure-এ Blob ডাউনলোডের জন্য অস্থায়ী URL তৈরি করা
Azure SDK এবং ব্লব অবজেক্ট URL ব্যবহার করে ফ্রন্ট-এন্ড জাভাস্ক্রিপ্ট সমাধান
// Import the Azure SDK and setup the blockBlobClient
import { BlobServiceClient } from "@azure/storage-blob";
const blobServiceClient = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING);
const containerClient = blobServiceClient.getContainerClient("my-container");
const blockBlobClient = containerClient.getBlockBlobClient("example-image.png");
// Function to generate temporary downloadable URL from blob
async function generateBlobDownloadURL() {
try {
const response = await blockBlobClient.download();
const blobData = await response.blobBody; // Retrieve the blob body
const tempUrl = URL.createObjectURL(blobData); // Create an object URL
console.log("Temporary URL:", tempUrl); // Log for testing
return tempUrl;
} catch (error) {
console.error("Error generating download URL:", error);
return null;
}
}
// Usage in React component within Next.js
export default function BlobDownloader() {
const handleDownload = async () => {
const url = await generateBlobDownloadURL();
if (url) window.open(url, "_blank"); // Open URL in new tab
};
return (
<button onClick={handleDownload}>Download Image</button>
);
}
ত্রুটি পরিচালনার সাথে ব্লব ডেটা ডাউনলোড পরিচালনা করা
দক্ষ মেমরি ব্যবহারের জন্য স্ট্রিম ব্যবহার করে ব্যাক-এন্ড Node.js পদ্ধতি
// Import necessary Azure SDK modules
const { BlobServiceClient } = require("@azure/storage-blob");
const express = require("express");
const app = express();
const PORT = process.env.PORT || 3000;
// Initialize Azure Blob Service Client
const blobServiceClient = BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING);
app.get("/download", async (req, res) => {
try {
const containerClient = blobServiceClient.getContainerClient("my-container");
const blockBlobClient = containerClient.getBlockBlobClient("example-image.png");
// Stream the blob content to the response
const downloadBlockBlobResponse = await blockBlobClient.download();
downloadBlockBlobResponse.readableStreamBody.pipe(res);
} catch (error) {
console.error("Error downloading blob:", error);
res.status(500).send("Failed to download blob");
}
});
// Start Express server
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
ব্লব ডাউনলোড কার্যকারিতার জন্য ইউনিট পরীক্ষা
সঠিক ডাউনলোড আচরণ নিশ্চিত করতে জেস্ট ব্যবহার করে ইউনিট পরীক্ষা করা হচ্ছে
// Test for front-end blob download function using Jest
import { generateBlobDownloadURL } from "../components/BlobDownloader";
describe("generateBlobDownloadURL", () => {
test("should return a valid object URL", async () => {
const url = await generateBlobDownloadURL();
expect(url).toMatch(/^blob:/);
});
test("should handle errors gracefully", async () => {
jest.spyOn(console, "error").mockImplementation(() => {});
const url = await generateBlobDownloadURL();
expect(url).toBeNull();
});
});
// Test for back-end stream handling using Jest and Supertest
const request = require("supertest");
const app = require("../server"); // Assuming the server script is named server.js
describe("GET /download", () => {
it("should return 200 and stream the blob content", async () => {
const response = await request(app).get("/download");
expect(response.status).toBe(200);
});
it("should return 500 on error", async () => {
jest.spyOn(console, "error").mockImplementation(() => {});
const response = await request(app).get("/download");
expect(response.status).toBe(500);
});
});
Next.js-এর মাধ্যমে অস্থায়ী ইউআরএল-এ ব্লব ক্যাশিং এবং নিরাপত্তা পরিচালনা করা
Azure ব্লব স্টোরেজ এবং জেনারেটিংয়ের সাথে কাজ করার একটি গুরুত্বপূর্ণ দিক অস্থায়ী URL ক্যাশিং আচরণ পরিচালনা করছে। ব্যবহার করার সময় URL.createObjectURL(), ব্রাউজার মেমরিতে ব্লব অবজেক্টের একটি রেফারেন্স তৈরি করে। যাইহোক, যদি ব্লব ডেটা পুনরায় লোড বা রিফ্রেশ করার প্রয়োজন হয়, তবে পুরানো URL এখনও ক্যাশ করা হতে পারে। ডেভেলপারদের নিশ্চিত করা উচিত যে অবজেক্ট ইউআরএল ব্যবহার করে প্রত্যাহার করা হয়েছে URL.revokeObjectURL() যখন আর প্রয়োজন হয় না, মেমরি খালি করতে এবং পুরানো ডেটার সমস্যা এড়াতে। এটি বিশেষভাবে প্রাসঙ্গিক যখন গতিশীলভাবে পরিবর্তনশীল ফাইল বা চিত্রগুলির সাথে কাজ করে পরবর্তী.js অ্যাপ
আরেকটি বিবেচ্য বিষয় হল অস্থায়ী ব্লব ইউআরএল প্রকাশ করার নিরাপত্তার প্রভাব। যদিও তৈরি করা URLগুলি শুধুমাত্র ক্লায়েন্ট ব্রাউজারে অ্যাক্সেসযোগ্য, তবুও সেগুলি কপি বা শেয়ার করা যেতে পারে, সম্ভাব্য নিরাপত্তা ঝুঁকি তৈরি করে৷ এটি প্রশমিত করতে, বিকাশকারীরা সংহত করতে পারেন ভাগ করা অ্যাক্সেস স্বাক্ষর (SAS) Azure থেকে, যা ব্লবগুলিতে সময়-সীমিত অ্যাক্সেসের অনুমতি দেয়। এইভাবে, কেউ URL শেয়ার করলেও, এটি একটি নির্দিষ্ট সময়ের পরে শেষ হয়ে যাবে। এই স্বাক্ষরগুলি প্রয়োগ করা নিশ্চিত করে যে আপনার ব্লব ডেটা সুরক্ষিত থাকে, এমনকি যখন ইউআরএলগুলির মাধ্যমে অস্থায়ীভাবে অ্যাক্সেস করা হয়।
অধিকন্তু, সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতার জন্য বিভিন্ন ডিভাইস জুড়ে ডাউনলোড লিঙ্কগুলি পরিচালনা করা অত্যন্ত গুরুত্বপূর্ণ। সমস্ত ডিভাইস ধারাবাহিকভাবে ব্লব ইউআরএলগুলি পরিচালনা করে না—বিশেষ করে মোবাইল ব্রাউজার, যা নতুন ট্যাবে বা ডাউনলোড অ্যাকশনে ব্লব ইউআরএল খোলার সমর্থন নাও করতে পারে। বিকাশকারীরা ফলব্যাক তৈরি করতে পারে, যেমন ব্যবহার করে window.location.href ব্যবহারকারীদের ম্যানুয়ালি ফাইল সংরক্ষণ করার জন্য যোগাযোগ বা অনুরোধ করা। আপনার পরবর্তী.js আবেদন
Next.js-এ ব্লব ইউআরএল ইস্যুগুলির জন্য সাধারণ প্রশ্ন এবং সমাধান
- কেন আমার ব্লব URL সঠিক চিত্র প্রদর্শন করছে না?
- আপনি ব্যবহার করছেন নিশ্চিত করুন URL.createObjectURL() সঠিক ব্লব অবজেক্টে এবং যে ব্লবের বিষয়বস্তু-টাইপ Azure ব্লব স্টোরেজে সঠিকভাবে সেট করা আছে।
- মেমরি লিক প্রতিরোধ করার জন্য আমি কিভাবে একটি ব্লব URL প্রত্যাহার করতে পারি?
- ব্যবহার করুন URL.revokeObjectURL() মেমরি খালি করতে এবং বাসি রেফারেন্স এড়াতে আপনি ব্লব দিয়ে কাজ শেষ করার পরে।
- মেয়াদ শেষ হওয়ার সাথে ব্লব ইউআরএল সুরক্ষিত করা কি সম্ভব?
- হ্যাঁ, Azure ব্যবহার করে Shared Access Signatures (SAS), আপনি সুরক্ষিত অ্যাক্সেস নিয়ন্ত্রণ প্রদান করে একটি নির্দিষ্ট সময়ের পরে মেয়াদ শেষ হওয়া URL তৈরি করতে পারেন।
- ব্লব ইউআরএল মোবাইল ব্রাউজারে কাজ না করলে আমার কী করা উচিত?
- ফলব্যাক প্রয়োগ করুন যেমন ব্যবহার করে পুনঃনির্দেশ করা window.location.href অথবা ব্লব ইউআরএল সমর্থিত না হলে ব্যবহারকারীদের ম্যানুয়ালি ফাইল সংরক্ষণ করতে অনুরোধ করা।
- আমি কীভাবে Node.js-এ বড় ফাইল ডাউনলোডগুলি দক্ষতার সাথে পরিচালনা করব?
- ব্যবহার করুন readableStreamBody.pipe() কন্টেন্টকে সরাসরি প্রতিক্রিয়ায় স্ট্রিম করতে, যা মেমরি ওভারলোড রোধ করে এবং মসৃণ ফাইল স্থানান্তর নিশ্চিত করে।
- আমি কি অস্থায়ী URL ব্যবহার না করে Azure Blob স্টোরেজ থেকে ফাইল ডাউনলোড করতে পারি?
- হ্যাঁ, আপনি এক্সপ্রেসের সাথে একটি ব্যাকএন্ড রুট সেট আপ করতে পারেন এবং ব্যবহার করে সরাসরি ক্লায়েন্টের কাছে ব্লব সামগ্রী স্ট্রিম করতে পারেন blockBlobClient.download().
- কেন আমার ব্লব ডাউনলোড দূষিত ডেটা ফেরত দিচ্ছে?
- ব্লবের এনকোডিং এবং বিষয়বস্তুর ধরন Azure-এ সঠিকভাবে কনফিগার করা হয়েছে কিনা তা পরীক্ষা করুন। এছাড়াও, নিশ্চিত করুন যে প্রতিক্রিয়া বডিটি ব্যবহার করে সঠিকভাবে পার্স করা হয়েছে response.blobBody.
- ব্লব ডাউনলোড পরীক্ষা করার সেরা উপায় কি?
- ডাউনলোডের অনুরোধ অনুকরণ করতে জেস্ট এবং সুপারটেস্ট ব্যবহার করুন এবং যাচাই করুন যে আপনার ডাউনলোড যুক্তি বিভিন্ন শর্তে সঠিকভাবে কাজ করে।
- ব্লব ইউআরএলগুলি কি একাধিকবার পুনরায় ব্যবহার করা যেতে পারে?
- হ্যাঁ, তবে মনে রাখবেন যে ব্রাউজার সেশনগুলি এই URL গুলি ক্যাশে করতে পারে৷ ব্যবহার করুন URL.revokeObjectURL() স্মৃতি মুক্তি এবং সমস্যা এড়াতে।
- আমি কিভাবে একটি নতুন ট্যাবে একটি ব্লব URL খুলব?
- ব্যবহার করুন window.open() একটি নতুন ট্যাবে এটি খুলতে blob URL দিয়ে। এটি কাজ না করলে ব্রাউজার সেটিংস পপ-আপের অনুমতি দেয় তা নিশ্চিত করুন৷
- আমি কীভাবে ব্লব সামগ্রী ডাউনলোড করার পরিবর্তে ইনলাইনে প্রদর্শন করব?
- উপযুক্ত সেট করুন content-disposition Azure Blob Storage-এ শিরোনাম একটি ডাউনলোড বাধ্যতামূলক করার পরিবর্তে ফাইল ইনলাইনে প্রদর্শন করতে।
ব্লব ডাউনলোড পরিচালনার মূল উপায়:
ব্লব ডাউনলোডগুলিকে দক্ষতার সাথে পরিচালনা করা পরবর্তী.js অ্যাপের মত পদ্ধতি ব্যবহার করে বাইনারি ডেটাকে অস্থায়ী ইউআরএলে রূপান্তর করা জড়িত URL.createObjectURL(). সঠিক মেমরি ব্যবস্থাপনা, যেমন অবজেক্ট ইউআরএল প্রত্যাহার করা, ফাঁস এবং কর্মক্ষমতা সমস্যা এড়াতে গুরুত্বপূর্ণ।
অস্থায়ী URL শেয়ার করা যেতে পারে হিসাবে নিরাপত্তা আরেকটি মূল বিবেচনা. SAS টোকেন প্রয়োগ করা সময়-সীমিত অ্যাক্সেস নিয়ন্ত্রণ যোগ করে। উপরন্তু, ব্রাউজার সামঞ্জস্য নিশ্চিত করা এবং ব্লব ইউআরএল সমর্থন করে না এমন ডিভাইসগুলির জন্য ফলব্যাক প্রদান একটি সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করে।
তথ্যসূত্র এবং সহায়ক সম্পদ
- জাভাস্ক্রিপ্টের জন্য Azure Blob Storage SDK-এর বিস্তারিত ডকুমেন্টেশন এখানে পাওয়া যাবে Azure Blob স্টোরেজ SDK .
- সম্পর্কে আরো জানুন URL.createObjectURL() পদ্ধতি এবং কিভাবে এটি MDN ওয়েব ডক্সে কাজ করে।
- ব্লব ইউআরএল সহ মেমরি পরিচালনার জন্য সর্বোত্তম অনুশীলন URL.revokeObjectURL() , MDN-এ আচ্ছাদিত।
- Azure Blob অ্যাক্সেস সুরক্ষিত করার অন্তর্দৃষ্টির জন্য, দেখুন Azure SAS টোকেন গাইড .
- Next.js-এ ফাইল ডাউনলোড পরিচালনা করার জন্য, এ Next.js ডকুমেন্টেশন দেখুন Next.js অফিসিয়াল ডক্স .