التشغيل السريع: مكتبة عميل مساحة تخزين Azure Blob ل Java SE

إشعار

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

إشعار

يستخدم خيار البدء بالقالب واجهة برمجة Azure Developer لأتمتة مهام النشر ويوفر مشروعا مكتملا. اختر هذا الخيار لاستكشاف الكود دون إكمال مهام الإعداد. للحصول على تعليمات خطوة بخطوة لبناء التطبيق، اختر البناء من الصفر.

ابدأ مع مكتبة عميل مساحة تخزين Azure Blob ل Java لإدارة الكائنات الثنائية كبيرة الحجم والحاويات.

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

في هذه المقالة، يمكنك استخدام Azure Developer CLI لنشر موارد Azure وتشغيل تطبيق وحدة تحكم مكتملة مع بعض الأوامر فقط.

تلميح

بالنسبة لتطبيقات Spring التي تستخدم موارد تخزين Azure، فكر في Spring Cloud Azure. يدمج هذا المشروع مفتوح المصدر Spring مع خدمات Azure. لمثال على مخزن البيانات الثنائية الكبيرة، انظر رفع ملف إلى تخزين Azure Blob.

الوثائق | |

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

الإعداد

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

إنشاء مشروع

إنشاء تطبيق Java باسم blob-quickstart.

  1. في نافذة وحدة التحكم (مثل PowerShell أو Bash)، استخدم Maven لإنشاء تطبيق وحدة تحكم جديد باسم blob-quickstart. اكتب الأمر mvn التالي لإنشاء "Hello world!" مشروع Java.

    mvn archetype:generate `
        --define interactiveMode=n `
        --define groupId=com.blobs.quickstart `
        --define artifactId=blob-quickstart `
        --define archetypeArtifactId=maven-archetype-quickstart `
        --define archetypeVersion=1.4
    
  2. راجع النتائج الناتجة عن توليد المشروع.

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------< org.apache.maven:standalone-pom >-------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] --------------------------------[ pom ]---------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<<
    [INFO]
    [INFO]
    [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Batch mode
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: com.blobs.quickstart
    [INFO] Parameter: artifactId, Value: blob-quickstart
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.blobs.quickstart
    [INFO] Parameter: packageInPathFormat, Value: com/blobs/quickstart
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: package, Value: com.blobs.quickstart
    [INFO] Parameter: groupId, Value: com.blobs.quickstart
    [INFO] Parameter: artifactId, Value: blob-quickstart
    [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  7.056 s
    [INFO] Finished at: 2019-10-23T11:09:21-07:00
    [INFO] ------------------------------------------------------------------------
        ```
    
    
  3. قم بالتبديل إلى مجلد blob-quickstart الذي تم إنشاؤه حديثا.

    cd blob-quickstart
    
  4. داخل مجلد blob-quickstart ، أنشئ دليلا آخر يسمى data. هذا المجلد هو المكان الذي يتم فيه إنشاء وتخزين ملفات بيانات البلوب.

    mkdir data
    

قم بتثبيت الحِزَم

افتح الملف pom.xml في محرر النصوص الخاص بك.

أضف azure-sdk-bom للحصول على تبعية على أحدث إصدار من المكتبة. في القصاصة البرمجية التالية، استبدل {bom_version_to_target} العنصر النائب برقم الإصدار. باستخدام azure-sdk-bom، لا تحتاج إلى تحديد نسخة كل تبعية على حدة. لمعرفة المزيد حول قائمة مكونات الصنف، راجع README ل Azure SDK BOM.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

ثم أضف عناصر التبعية التالية إلى مجموعة التبعيات. تحتاج إلى الاعتماد على azure-identity للاتصالات بدون كلمة مرور إلى خدمات Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

إعداد إطار عمل التطبيق

من دليل المشروع، اتبع هذه الخطوات لإنشاء البنية الأساسية للتطبيق:

  1. انتقل إلى دليل /src/main/java/com/blobs/quickstart
  2. افتح ملف App.java في المحرر الخاص بك
  3. حذف السطر System.out.println("Hello world!");
  4. إضافة التوجيهات الضرورية import

يجب أن تشبه التعليمات البرمجية إطار العمل هذا:

package com.blobs.quickstart;

/**
 * Azure Blob Storage quickstart
 */
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;

public class App
{
    public static void main(String[] args) throws IOException
    {
        // Quickstart code goes here
    }
}

باستخدام واجهة سطر Azure Developer، يمكنك إنشاء حساب تخزين وتشغيل الكود النموذجي باستخدام بعض الأوامر فقط. يمكنك تشغيل المشروع في بيئة التطوير المحلية أو في حاوية تطوير.

تهيئة قالب Azure Developer CLI ونشر الموارد

من دليل فارغ، اتبع هذه الخطوات لتهيئة القالب azd وتوفير موارد Azure والبدء في استخدام التعليمات البرمجية:

  • استنساخ أصول مستودع التشغيل السريع من GitHub وتهيئة القالب محليا:

    azd init --template blob-storage-quickstart-java
    

    يتم طلب منك تقديم المعلومات التالية:

    • Environment name: Azure يستخدم واجهة المطور هذه القيمة كبادئة لكل الموارد Azure التي تنشئها. يجب أن يكون الاسم فريدا في جميع اشتراكات Azure وأن يتراوح طوله بين 3 و24 حرفا. يمكن أن يحتوي الاسم على أرقام وأحرف صغيرة فقط.
  • تسجيل الدخول إلى Azure:

    azd auth login
    
  • توفير الموارد ونشرها في Azure:

    azd up
    

    يتم طلب منك تقديم المعلومات التالية:

    • الاشتراك: اشتراك Azure لنشر مواردك.
    • الموقع: منطقة Azure لنشر مواردك.

    قد يستغرق انتهاء النشر بضع دقائق. المخرجات من azd up الأمر تتضمن اسم حساب التخزين الذي تم إنشاؤه حديثا، والذي تحتاجه لاحقا لتشغيل الكود.

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

عند هذه النقطة، يتم نشر الموارد إلى Azure وتكون التعليمات البرمجية جاهزة تقريبا للتشغيل. اتبع هذه الخطوات لتحديث اسم حساب التخزين في التعليمات البرمجية، وتشغيل نموذج تطبيق وحدة التحكم:

  • تحديث اسم حساب التخزين:
    1. في الدليل المحلي، انتقل إلى دليل blob-quickstart/src/main/java/com/blobs/quickstart .
    2. افتح الملف المسمى App.java في المحرر. ابحث عن <storage-account-name> العنصر النائب واستبدله بالاسم الفعلي لحساب التخزين الذي أنشأه azd up الأمر .
    3. ا‏‏حفظ التغييرات.
  • تشغيل المشروع:
    1. انتقل إلى دليل blob-quickstart الذي يحتوي على pom.xml الملف. تحويل المشروع برمجيا باستخدام الأمر التالي mvn :
      mvn compile
      
    2. حزم التعليمات البرمجية المحولة برمجيا بتنسيقها القابل للتوزيع:
      mvn package
      
    3. قم بتشغيل الأمر التالي mvn لتنفيذ التطبيق:
      mvn exec:java
      
  • مراقبة الإخراج: ينشئ هذا التطبيق ملف اختبار في مجلد البيانات المحلي الخاص بك ويحمله إلى حاوية في حساب التخزين. ثم يسرد المثال النقط في الحاوية ثم يقوم بتحميل الملف باسم جديد بحيث يمكنك مقارنة الملفات القديمة والجديدة.

لمعرفة المزيد حول كيفية عمل نموذج التعليمات البرمجية، راجع أمثلة التعليمات البرمجية.

عند الانتهاء من اختبار التعليمات البرمجية، راجع قسم تنظيف الموارد لحذف الموارد التي أنشأها azd up الأمر.

نموذج الكائن

يتم تحسين مساحة تخزين Azure Blob لتخزين كميات هائلة من البيانات غير المهيكلة. لا تلتزم البيانات غير المنظمة بنموذج بيانات أو تعريف معين، مثل النص أو البيانات الثنائية. يوفر موقع تخزين Blob ثلاثة أنواع من الموارد:

  • حساب التخزين
  • حاوية في حساب التخزين
  • كائن تخزين بيانات ثنائية كبيرة في الحاوية

يعرض الرسم التخطيطي التالي العلاقة بين هذه الموارد.

رسم توضيحي يظهر حساب تخزين يحتوي على حاوية blob وblob.

استخدم فئات Java التالية للتفاعل مع هذه الموارد:

  • BlobServiceClient: الفئة BlobServiceClient تدير تخزين Azure resources and blob containers. يوفر حساب التخزين مساحة التسمية العليا لخدمة Blob.
  • BlobServiceClientBuilder: توفر الفئة BlobServiceClientBuilder واجهة برمجة تطبيقات متطورة لتكوين وإنشاء BlobServiceClient الكائنات.
  • BlobContainerClient: الclass BlobContainerClient manage تخزين Azure containers and their blobs.
  • BlobClient: الclass BlobClient manage تخزين Azure blobs.
  • BlobItem: BlobItemتمثل الفئة النقط الفردية التي تم إرجاعها من مكالمة إلى listBlobs.

أمثلة على التعليمات البرمجية

توضح لك أمثلة أجزاء التعليمات البرمجية هذه كيفية تنفيذ الإجراءات التالية باستخدام مكتبة عميل مساحة تخزين Azure Blob ل Java:

هام

أضف التبعيات والتوجيهات الموضحة في قسم الإعداد قبل استخدام عينات الكود.

إشعار

يتضمن قالب Azure Developer CLI ملفا مع نموذج التعليمات البرمجية في مكانه بالفعل. توفر الأمثلة التالية تفاصيل لكل جزء من نموذج التعليمات البرمجية. ينفذ القالب أسلوب المصادقة بدون كلمة مرور الموصى بها، كما هو موضح في قسم Authenticate to Azure . يتم عرض أسلوب سلسلة الاتصال كبديل، ولكن لا يتم استخدامه في القالب ولا يوصى به للتعليمات البرمجية للإنتاج.

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

يجب تخويل طلبات التطبيق إلى مساحة تخزين Azure Blob. DefaultAzureCredential استخدام الفئة التي توفرها مكتبة عميل Azure Identity هو الأسلوب الموصى به لتنفيذ اتصالات بدون كلمة مرور بخدمات Azure في التعليمات البرمجية الخاصة بك، بما في ذلك مخزن البيانات الثنائية الكبيرة.

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

DefaultAzureCredential هي فئة توفرها مكتبة عميل Azure Identity ل Java. DefaultAzureCredential يدعم طرق مصادقة متعددة ويحدد الطريقة التي يجب استخدامها في وقت التشغيل. يمكن هذا النهج تطبيقك من استخدام أساليب مصادقة مختلفة في بيئات مختلفة (البيئة المحلية مقابل بيئة التشغيل) دون تنفيذ التعليمات البرمجية الخاصة بالبيئة.

يمكنك العثور على الترتيب والمواقع التي يبحث فيها DefaultAzureCredential عن بيانات الاعتماد في Azure مكتبة الهوية العامة.

على سبيل المثال، يمكن لتطبيقك المصادقة باستخدام بيانات الدخول الخاصة ب تعليمة Visual Studio برمجية عند التطوير محليا. يمكن لتطبيقك بعد ذلك استخدام هوية مدارة بعد نشره على Azure. لا توجد تغييرات في التعليمات البرمجية مطلوبة لهذه المرحلة الانتقالية.

تعيين أدوار لحساب مستخدم Microsoft Entra

عند التطوير محليًا، تأكد من أن حساب المستخدم الذي يصل إلى بيانات الكائن الثنائي كبير الحجم لديه الأذونات الصحيحة. ستحتاج إلى Storage Blob Data Contributor لقراءة بيانات الكائن الثنائي كبير الحجم وكتابتها. لتعيين هذا الدور لنفسك، ستحتاج إلى تعيين دور مسؤول وصول المستخدم، أو دور آخر يتضمن إجراء Microsoft.Authorization/roleAssignments/write . يمكنك تعيين أدوار Azure RBAC لمستخدم باستخدام مدخل Microsoft Azure أو Azure CLI أو Azure PowerShell. لمزيد من المعلومات حول دور مساهم بيانات Storage Blob ، راجع مساهم بيانات Blob للتخزين. لمزيد من المعلومات حول النطاقات المتوفرة لتعيينات الأدوار، راجع فهم نطاق Azure RBAC.

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

سيقوم المثال التالي بتعيين دور Storage Blob Data Contributor إلى حساب المستخدم الخاص بك، والذي يوفر حق الوصول للقراءة والكتابة إلى بيانات blob في حساب التخزين الخاص بك.

هام

في معظم الحالات، سيستغرق نشر تعيين الدور في Azure دقيقة أو دقيقتين، ولكن في حالات نادرة قد يستغرق الأمر ما يصل إلى ثماني دقائق. إذا تلقيت أخطاء المصادقة عند تشغيل التعليمات البرمجية لأول مرة، فانتظر بضع لحظات وحاول مرة أخرى.

  1. في مدخل Microsoft Azure، حدد موقع حساب التخزين الخاص بك باستخدام شريط البحث الرئيسي أو شريط التنقل الأيسر.

  2. في صفحة نظرة عامة على حساب التخزين، حدد التحكم بالوصول (IAM) من القائمة اليسرى.

  3. حدد صفحة التحكم بالوصول (IAM)، وحدد علامة تبويب تعيينات الدور.

  4. حدد + إضافة من القائمة العلوية ثم إضافة تعيين الدور من القائمة المنسدلة الناتجة.

    لقطة شاشة توضح كيفية تعيين دور.

  5. استخدم مربع البحث لتصفية النتائج إلى الدور المطلوب. في هذا المثال، ابحث عن مساهم بيانات Storage Blob وحدد النتيجة المطابقة ثم اختر التالي.

  6. ضمن تعيين الوصول إلى، حدد المستخدم أو المجموعة أو كيان الخدمة، ثم اختر + تحديد الأعضاء.

  7. في مربع الحوار، ابحث عن اسم مستخدم Microsoft Entra (عنوان بريدك الإلكتروني user@domain عادة) ثم اختر تحديد في أسفل مربع الحوار.

  8. حدد مراجعة + تعيين للانتقال إلى الصفحة النهائية، ثم مراجعة + تعيين مرة أخرى لإكمال العملية.

سجل الدخول وربط كود تطبيقك ب Azure باستخدام DefaultAzureCredential

تفوض الوصول إلى البيانات في حساب التخزين الخاص بك باتباع هذه الخطوات:

  1. قم بالتحقق باستخدام نفس حساب Microsoft Entra الذي خصصت له دور حساب التخزين. استخدم Azure CLI، تعليمة Visual Studio برمجية، أو Azure PowerShell.

    تسجيل الدخول إلى Azure عبر Azure CLI باستخدام الأمر التالي:

    az login
    
  2. لاستخدام DefaultAzureCredential، أضف الاعتماد على الهوية الأزرق إلى pom.xml:

    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-identity</artifactId>
    </dependency>
    
  3. أضف هذه التعليمة البرمجية main إلى الأسلوب . عندما يعمل الكود على محطة العمل المحلية لديك، يستخدم بيانات اعتماد المطور الخاصة بالأداة ذات الأولوية التي تم تسجيل الدخول إليها للمصادقة على Azure، مثل Azure CLI أو تعليمة Visual Studio برمجية.

    /*
     * The default credential first checks environment variables for configuration
     * If environment configuration is incomplete, it will try managed identity
     */
    DefaultAzureCredential defaultCredential = new DefaultAzureCredentialBuilder().build();
    
    // 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(defaultCredential)
            .buildClient();
    
  4. قم بتحديث اسم حساب التخزين في رابط المستخدم الخاص ب BlobServiceClient. ابحث عن اسم حساب التخزين في صفحة النظرة العامة في بوابة Azure.

    لقطة شاشة تعرض كيفية العثور على اسم حساب التخزين.

    إشعار

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

إنشاء حاوية

إنشاء حاوية جديدة في حساب التخزين الخاص بك عن طريق استدعاء أسلوب createBlobContainer على blobServiceClient الكائن. في هذا المثال، تقوم التعليمات البرمجية بإلحاق قيمة GUID باسم الحاوية للتأكد من أنها فريدة.

إضافة هذه التعليمات البرمجية إلى نهاية الأسلوب main:

// Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();

// Create the container and return a container client object
BlobContainerClient blobContainerClient = blobServiceClient.createBlobContainer(containerName);

لمزيد من المعلومات والأمثلة، راجع إنشاء حاوية blob باستخدام Java.

هام

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

تحميل الكائنات الثنائية كبيرة الحجم إلى حاوية

قم بتحميل كائن ثنائي كبير الحجم إلى حاوية عن طريق استدعاء أسلوب uploadFromFile . ينشئ مثال التعليمات البرمجية ملفا نصيا في دليل البيانات المحلي لتحميله إلى الحاوية.

إضافة هذه التعليمات البرمجية إلى نهاية الأسلوب main:

// Create the ./data/ directory and a file for uploading and downloading
String localPath = "./data/";
new File(localPath).mkdirs();
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";

// Get a reference to a blob
BlobClient blobClient = blobContainerClient.getBlobClient(fileName);

// Write text to the file
FileWriter writer = null;
try
{
    writer = new FileWriter(localPath + fileName, true);
    writer.write("Hello, World!");
    writer.close();
}
catch (IOException ex)
{
    System.out.println(ex.getMessage());
}

System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());

// Upload the blob
blobClient.uploadFromFile(localPath + fileName);

لمزيد من المعلومات والأمثلة، راجع رفع كتلة باستخدام Java.

سرد الكائنات الثنائية كبيرة الحجم في حاوية

سرد النقط في الحاوية عن طريق استدعاء الأسلوب listBlobs. في هذه الحالة، أضفت كتلة واحدة فقط إلى الحاوية، لذا تعيد عملية الإدراج تلك الكتلة فقط.

إضافة هذه التعليمات البرمجية إلى نهاية الأسلوب main:

System.out.println("\nListing blobs...");

// List the blob(s) in the container.
for (BlobItem blobItem : blobContainerClient.listBlobs()) {
    System.out.println("\t" + blobItem.getName());
}

لمزيد من المعلومات والأمثلة، راجع قائمة الكتل مع Java.

تنزيل كائنات تخزين البيانات الثنائية الكبيرة

تحميل النقطة التي تم إنشاؤها مسبقا عن طريق استدعاء downloadToFile أسلوب. الكود النموذجي يضيف لاحقة ل DOWNLOAD إلى اسم الملف بحيث يمكنك رؤية كلا الملفين في نظام الملفات المحلي.

إضافة هذه التعليمات البرمجية إلى نهاية الأسلوب main:

// Download the blob to a local file

// Append the string "DOWNLOAD" before the .txt extension for comparison purposes
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");

System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);

blobClient.downloadToFile(localPath + downloadFileName);

لمزيد من المعلومات والأمثلة، راجع تحميل كتلة باستخدام Java.

احذف حاوية

الكود التالي ينظف الموارد التي أنشأها التطبيق عن طريق إزالة الحاوية بالكامل باستخدام طريقة الحذف . كما أنه يحذف الملفات المحلية التي تم إنشاؤها بواسطة التطبيق.

يتوقف التطبيق مؤقتا المستخدم عن طريق الاتصال System.console().readLine() قبل أن يحذف النقطة والحاوية والملفات المحلية. هذا التوقف يمنحك فرصة للتحقق من أن التطبيق أنشأ الموارد بشكل صحيح قبل أن يحذفها.

إضافة هذه التعليمات البرمجية إلى نهاية الأسلوب main:

File downloadedFile = new File(localPath + downloadFileName);
File localFile = new File(localPath + fileName);

// Clean up resources
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();

System.out.println("Deleting blob container...");
blobContainerClient.delete();

System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();

System.out.println("Done");

لمزيد من المعلومات والأمثلة، راجع حذف واستعادة حاوية blob باستخدام Java.

تشغيل التعليمات البرمجية

يقوم هذا التطبيق بإنشاء ملف اختبار في المجلد المحلي الخاص بك وتحميله إلى Blob storage. ثم يسرد المثال النقط في الحاوية ثم يقوم بتحميل الملف باسم جديد بحيث يمكنك مقارنة الملفات القديمة والجديدة.

اتبع هذه الخطوات لتجميع وتغليف وتشغيل الكود:

  1. انتقل إلى الدليل الذي يحتوي على pom.xml الملف وقم بتجميع المشروع باستخدام الأمر التالي mvn :
    mvn compile
    
  2. حزم التعليمات البرمجية المحولة برمجيا بتنسيقها القابل للتوزيع:
    mvn package
    
  3. قم بتشغيل الأمر التالي mvn لتنفيذ التطبيق:
    mvn exec:java -D exec.mainClass=com.blobs.quickstart.App -D exec.cleanupDaemonThreads=false
    
    لتبسيط خطوة التشغيل، أضف exec-maven-plugin إلى pom.xml وقم بتكوينها كما هو موضح في الكود التالي:
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.4.0</version>
      <configuration>
        <mainClass>com.blobs.quickstart.App</mainClass>
        <cleanupDaemonThreads>false</cleanupDaemonThreads>
      </configuration>
    </plugin>
    
    مع هذا التكوين، نفذ التطبيق بالأمر التالي:
    mvn exec:java
    

يشبه إخراج التطبيق المثال التالي (حذف قيم UUID لسهولة القراءة):

Azure Blob Storage - Java quickstart sample

Uploading to Blob storage as blob:
        https://mystorageacct.blob.core.windows.net/quickstartblobsUUID/quickstartUUID.txt

Listing blobs...
        quickstartUUID.txt

Downloading blob to
        ./data/quickstartUUIDDOWNLOAD.txt

Press the Enter key to begin clean up

Deleting blob container...
Deleting the local source and downloaded files...
Done

قبل البدء في عملية التنظيف، تحقق من مجلد البيانات للملفين. يمكنك مقارنتها وملاحظة أنها متطابقة.

تنظيف الموارد

بعد التحقق من الملفات وإنهاء الاختبار، اضغط Enter لحذف ملفات الاختبار مع الحاوية التي أنشأتها في حساب التخزين. يمكنك أيضا استخدام Azure CLI لحذف الموارد.

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

azd down

تتلقى رسالة لتأكيد حذف الموارد. أدخل y للتأكيد.

الخطوة التالية