إدارة خصائص الحاوية وبيانات التعريف باستخدام Java

تدعم حاويات Blob خصائص النظام وبيانات التعريف المحددة مسبقًا من قبل المستخدم، بالإضافة إلى البيانات التي تحتوي عليها. توضح هذه المقالة كيفية إدارة خصائص النظام وبيانات التعريف المعرفة من قبل المستخدم باستخدام مكتبة عميل Azure Storage ل Java.

المتطلبات الأساسية

إعداد بيئتك

إذا لم يكن لديك مشروع موجود، يوضح لك هذا القسم كيفية إعداد مشروع للعمل مع مكتبة عميل Azure Blob Storage ل Java. لمزيد من المعلومات، راجع بدء استخدام Azure Blob Storage وJava.

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

إشعار

تستخدم هذه المقالة أداة بناء Maven لإنشاء التعليمات البرمجية المثال وتشغيلها. تعمل أدوات البناء الأخرى، مثل Gradle، أيضا مع Azure SDK ل Java.

تثبيت الحزم

افتح الملف pom.xml في محرر النصوص الخاص بك. قم بتثبيت الحزم عن طريق تضمين ملف BOM، أو تضمين تبعية مباشرة.

إضافة عبارات الاستيراد

أضف عبارات import التالية:

import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.util.*;

التصريح

يجب أن يكون لآلية التخويل الأذونات اللازمة للعمل مع خصائص الحاوية أو بيانات التعريف. للحصول على تخويل باستخدام معرف Microsoft Entra (موصى به)، تحتاج إلى دور Azure RBAC المضمن في Storage Blob Data Reader أو أعلى لعمليات الحصول ، وStorage Blob Data Contributor أو أعلى لعمليات المجموعة . لمعرفة المزيد، راجع إرشادات التخويل للحصول على خصائص الحاوية (REST API) أو تعيين بيانات تعريف الحاوية (REST API) أو الحصول على بيانات تعريف الحاوية (REST API).

إنشاء كائن عميل

لتوصيل تطبيق ب Blob Storage، قم بإنشاء مثيل BlobServiceClient.

يستخدم المثال التالي BlobServiceClientBuilder لإنشاء كائن BlobServiceClient باستخدام DefaultAzureCredential، ويوضح كيفية إنشاء عملاء الحاوية والكائنات الثنائية كبيرة الحجم، إذا لزم الأمر:

// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("<container-name>");

// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
        .getBlobClient("<blob-name>");

لمعرفة المزيد حول إنشاء كائنات العميل وإدارتها، راجع إنشاء كائنات العميل التي تتفاعل مع موارد البيانات وإدارتها.

نبذة عن الخصائص وبيانات التعريف

  • خصائص النظام: توجد خصائص النظام على كل مورد Blob Storage. يمكن قراءة بعضها أو تعيينها، بينما البعض الآخر للقراءة فقط. خلف الكواليس، تتوافق بعض خصائص النظام مع بعض رؤوس HTTP القياسية. تحتفظ مكتبة عميل Azure Storage ل Java بهذه الخصائص لك.

  • بيانات التعريف المحددة مسبقًا من المستخدم: تتكون بيانات التعريف المحددة مسبقًا من المستخدم من زوج واحد أو أكثر من أزواج قيمة الاسم التي تحددها لمورد تخزين Blob. يمكنك استخدام بيانات التعريف لتخزين قيم إضافية مع المورد. قيم بيانات التعريف هي لأغراضك فقط، ولا تؤثر على كيفية تصرف المورد.

    أزواج اسم/قيمة بيانات التعريف هي رؤوس HTTP صالحة ويجب أن تلتزم بجميع القيود التي تحكم رؤوس HTTP. لمزيد من المعلومات حول متطلبات تسمية بيانات التعريف، راجع أسماء بيانات التعريف.

استرداد خصائص الحاوية

لاسترداد خصائص الحاوية، استخدم الأسلوب التالي:

يجلب مثال التعليمات البرمجية التالي خصائص نظام الحاوية ويكتب قيم الخصائص إلى نافذة وحدة التحكم:

public void getContainerProperties(BlobContainerClient blobContainerClient) {
    BlobContainerProperties properties = blobContainerClient.getProperties();
    System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n",
            properties.getBlobPublicAccess(),
            properties.hasLegalHold(),
            properties.hasImmutabilityPolicy());
}

تعيين بيانات التعريف واستردادها

يمكنك تحديد بيانات التعريف كزوج واحد أو أكثر من أزواج قيمة الاسم على مورد النقطة أو الحاوية. لتعيين بيانات التعريف، استخدم الأسلوب التالي:

يؤدي تعيين بيانات تعريف الحاوية إلى الكتابة فوق جميع بيانات التعريف الموجودة المقترنة بالحاوية. لا يمكن تعديل زوج اسم-قيمة فردي.

يعين مثال التعليمات البرمجية التالي بيانات التعريف على حاوية:

public void addContainerMetadata(BlobContainerClient blobContainerClient) {
    Map<String, String> metadata = new HashMap<String, String>();
    metadata.put("docType", "text");
    metadata.put("category", "reference");

    try {
        blobContainerClient.setMetadata(metadata);
        System.out.printf("Set metadata completed %n");
    } catch (UnsupportedOperationException error) {
        System.out.printf("Failure while setting metadata %n");
    }
}

لاسترداد بيانات التعريف، قم باستدعاء الأسلوب التالي:

يقرأ المثال التالي في قيم بيانات التعريف:

public void readContainerMetadata(BlobContainerClient blobContainerClient) {
    BlobContainerProperties properties = blobContainerClient.getProperties();

    System.out.printf("Container metadata: %n");
    properties.getMetadata().entrySet().forEach(metadataItem -> {
        System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
    });
}

الموارد

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

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

عمليات واجهة برمجة تطبيقات REST

يحتوي Azure SDK ل Java على مكتبات تستند إلى واجهة برمجة تطبيقات AZURE REST، مما يسمح لك بالتفاعل مع عمليات REST API من خلال نماذج Java المألوفة. تستخدم أساليب مكتبة العميل لإعداد واسترداد الخصائص وبيانات التعريف عمليات واجهة برمجة تطبيقات REST التالية:

يسترد getProperties الأسلوب خصائص الحاوية وبيانات التعريف عن طريق استدعاء كل من عملية Get Blob Properties والعملية Get Blob Metadata .

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

  • هذه المقالة هي جزء من دليل مطور Blob Storage ل Java. لمعرفة المزيد، راجع القائمة الكاملة لمقالات دليل المطور في إنشاء تطبيق Java الخاص بك.