إنشاء SAS خدمة لحاوية أو كائن ثنائي كبير الحجم باستخدام Java

يتيح لك توقيع الوصول المشترك (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 ل Java.

حول SAS للخدمة

يتم توقيع SAS لخدمة باستخدام مفتاح اختصار الحساب. يمكنك استخدام فئة StorageSharedKeyCredential لإنشاء بيانات الاعتماد المستخدمة لتوقيع SAS للخدمة.

يمكنك أيضا استخدام نهج وصول مخزن لتحديد أذونات ومدة SAS. إذا تم توفير اسم لنهج وصول مخزن موجود، فسيرتبط هذا النهج بتوقيع الوصول المشترك. لمعرفة المزيد حول نهج الوصول المخزنة، راجع تعريف نهج الوصول المخزن. إذا لم يتم توفير نهج وصول مخزن، فإن أمثلة التعليمات البرمجية في هذه المقالة توضح كيفية تعريف الأذونات والمدة ل SAS.

إنشاء خدمة SAS

يمكنك إنشاء SAS خدمة لحاوية أو كائن ثنائي كبير الحجم، استنادا إلى احتياجات التطبيق الخاص بك.

يمكنك إنشاء SAS خدمة لتفويض وصول محدود إلى مورد حاوية باستخدام الأسلوب التالي:

يتم تمرير قيم توقيع SAS، مثل وقت انتهاء الصلاحية والأذونات الموقعة، إلى الأسلوب كجزء من مثيل BlobServiceSasSignatureValues . يتم تحديد الأذونات كمثيل BlobContainerSasPermission .

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء SAS خدمة مع أذونات القراءة لمورد حاوية:

public String createServiceSASContainer(BlobContainerClient containerClient) {
    // Create a SAS token that's valid for 1 day, as an example
    OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1);

    // Assign read permissions to the SAS token
    BlobContainerSasPermission sasPermission = new BlobContainerSasPermission()
            .setReadPermission(true);

    BlobServiceSasSignatureValues sasSignatureValues = new BlobServiceSasSignatureValues(expiryTime, sasPermission)
            .setStartTime(OffsetDateTime.now().minusMinutes(5));

    String sasToken = containerClient.generateSas(sasSignatureValues);
    return sasToken;
}

استخدام SAS للخدمة لتخويل كائن عميل

يمكنك استخدام SAS للخدمة لتخويل كائن عميل لتنفيذ العمليات على حاوية أو كائن ثنائي كبير الحجم استنادا إلى الأذونات الممنوحة من قبل SAS.

توضح أمثلة التعليمات البرمجية التالية كيفية استخدام SAS للخدمة لتخويل كائن BlobContainerClient . يمكن استخدام كائن العميل هذا لتنفيذ العمليات على مورد الحاوية استنادا إلى الأذونات الممنوحة من قبل SAS.

أولا، إنشاء كائن BlobServiceClient موقع باستخدام مفتاح الوصول إلى الحساب:

String accountName = "<account-name>";
String accountKey = "<account-key>";
StorageSharedKeyCredential credential = new StorageSharedKeyCredential(accountName, accountKey);
        
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint(String.format("https://%s.blob.core.windows.net/", accountName))
        .credential(credential)
        .buildClient();

ثم قم بإنشاء SAS للخدمة كما هو موضح في المثال السابق واستخدم SAS لتخويل كائن BlobContainerClient :

// Create a SAS token
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("sample-container");
String sasToken = createServiceSASContainer(containerClient);

// Create a new BlobContainerClient using the SAS token
BlobContainerClient sasContainerClient = new BlobContainerClientBuilder()
        .endpoint(containerClient.getBlobContainerUrl())
        .sasToken(sasToken)
        .buildClient();

الموارد

لمعرفة المزيد حول استخدام مكتبة عميل Azure Blob Storage ل Java، راجع الموارد التالية.

نماذج التعليمات البرمجية

موارد مكتبة العميل

(راجع أيضًا )