إنشاء 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، مثل وقت انتهاء الصلاحية والأذونات الموقعة، إلى الأسلوب كجزء من مثيل BlobServiceSasSignatureValues . يتم تحديد الأذونات كمثيل BlobSasPermission .

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

public String createServiceSASBlob(BlobClient blobClient) {
    // 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
    BlobSasPermission sasPermission = new BlobSasPermission()
            .setReadPermission(true);

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

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

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

يوضح مثال التعليمات البرمجية التالي كيفية استخدام SAS للخدمة التي تم إنشاؤها في المثال السابق لتخويل كائن BlobClient . يمكن استخدام كائن العميل هذا لتنفيذ العمليات على مورد الكائن الثنائي كبير الحجم استنادا إلى الأذونات الممنوحة من قبل 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 لتخويل كائن BlobClient :

// Create a SAS token
BlobClient blobClient = blobServiceClient
        .getBlobContainerClient("sample-container")
        .getBlobClient("sample-blob.txt");
String sasToken = createServiceSASBlob(blobClient);

// Create a new BlobClient using the SAS token
BlobClient sasBlobClient = new BlobClientBuilder()
        .endpoint(blobClient.getBlobUrl())
        .sasToken(sasToken)
        .buildClient();

الموارد

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

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

(راجع أيضًا )