إنشاء SAS خدمة لحاوية أو كائن ثنائي كبير الحجم باستخدام JavaScript
يتيح لك توقيع الوصول المشترك (SAS) منح وصول محدود إلى الحاويات والكائنات الثنائية كبيرة الحجم في حساب التخزين الخاص بك. عند إنشاء توقيع الوصول المشترك، فإنك تحدد قيوده بما في ذلك موارد تخزين Azure التي يُسمح للعميل بالوصول إليها، وما هي الأذونات التي يمتلكها على تلك الموارد، ومدة صلاحية توقيع الوصول المشترك.
يتم عملية توقيع كل SAS بمفتاح. يمكنك توقيع SAS بإحدى طريقتين:
- باستخدام مفتاح تم إنشاؤه باستخدام بيانات اعتماد Microsoft Entra. SAS الذي تم توقيعه باستخدام بيانات اعتماد Microsoft Entra هو SAS لتفويض المستخدم. يجب أن يتم تعيين دور Azure RBAC للعميل الذي يقوم بإنشاء تحويل مستخدم SAS والذي يتضمن الإجراء Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey. لمعرفة المزيد، راجع إنشاء توقيعات الوصول المشترك لتفويض المستخدم.
- باستخدام مفتاح حساب التخزين. يتم توقيع كل من توقيع الوصول المشترك للخدمة و توقيع الوصول المشترك للحساب باستخدام مفتاح حساب التخزين. يجب أن يكون للعميل الذي ينشئ خدمة SAS حق وصول مباشر إلى مفتاح الحساب أو أن يتم تعيين إذن Microsoft.Storage/storageAccounts/listkeys/action. لمعرفة المزيد، راجع إنشاء SAS خدمة أو إنشاء حساب SAS.
إشعار
يوفر توقيع الوصول المشترك لتفويض المستخدم أماناً فائقاً لتوقيع الوصول المشترك الموقع باستخدام مفتاح حساب التخزين. توصي Microsoft باستخدام توقيع الوصول المشترك لتفويض المستخدم عندما يكون ذلك ممكناً. لمعرفة المزيد من المعلومات حول مفاتيح SAS، راجع منح وصول محدود إلى البيانات باستخدام توقيعات الوصول المشتركة (SAS).
توضح هذه المقالة كيفية استخدام مفتاح حساب التخزين لإنشاء SAS خدمة لحاوية أو كائن ثنائي كبير الحجم باستخدام مكتبة عميل Blob Storage ل JavaScript.
إنشاء SAS لخدمة لحاوية كائنات ثنائية كبيرة الحجم
يقوم مثال التعليمات البرمجية التالي بإنشاء SAS لحاوية. إذا تم توفير اسم لنهج وصول مخزن موجود، فسيرتبط هذا النهج بتوقيع الوصول المشترك. إذا لم يتم توفير نهج وصول مخزن، فستقوم التعليمات البرمجية بإنشاء توقيع وصول مشترك مخصص على الحاوية.
يتم توقيع SAS لخدمة باستخدام مفتاح اختصار الحساب. استخدم فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS. بعد ذلك، قم باستدعاء الدالة generateBlobSASQueryParameters التي توفر المعلمات المطلوبة للحصول على سلسلة رمز SAS المميز.
// Create a service SAS for a blob container
function getContainerSasUri(containerClient, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
permissions: ContainerSASPermissions.parse("c")
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob container is: ${sasToken}`);
return `${containerClient.url}?${sasToken}`;
}
إنشاء SAS لخدمة لكائن ثنائي كبير الحجم
يقوم مثال التعليمات البرمجية التالي بإنشاء SAS على كائن ثنائي كبير الحجم. إذا تم توفير اسم لنهج وصول مخزن موجود، فسيرتبط هذا النهج بتوقيع الوصول المشترك. إذا لم يتم توفير نهج وصول مخزن، فستقوم التعليمات البرمجية بإنشاء توقيع وصول مشترك مخصص على الكائن الثنائي كبير الحجم.
لإنشاء SAS لخدمة لكائن ثنائي كبير الحجم، قم باستدعاء الدالة generateBlobSASQueryParameters التي توفر المعلمات المطلوبة.
// Create a service SAS for a blob
function getBlobSasUri(containerClient, blobName, sharedKeyCredential, storedPolicyName) {
const sasOptions = {
containerName: containerClient.containerName,
blobName: blobName
};
if (storedPolicyName == null) {
sasOptions.startsOn = new Date();
sasOptions.expiresOn = new Date(new Date().valueOf() + 3600 * 1000);
sasOptions.permissions = BlobSASPermissions.parse("r");
} else {
sasOptions.identifier = storedPolicyName;
}
const sasToken = generateBlobSASQueryParameters(sasOptions, sharedKeyCredential).toString();
console.log(`SAS token for blob is: ${sasToken}`);
return `${containerClient.getBlockBlobClient(blobName).url}?${sasToken}`;
}
موارد للتطوير باستخدام JavaScript
توفر الارتباطات أدناه موارد مفيدة للمطورين الذين يستخدمون مكتبة عميل تخزين Azure لـ JavaScript
واجهات برمجة تطبيقات تخزين كائن ثنائي كبير الحجم
- مكتبة عميل الكائنات الثنائية كبيرة الحجم لتخزين Azure لـ JavaScript
- التعليمات البرمجية لمصدر للمكتبة
- الحزمة (npm)
- وثائق مرجع API