تطوير تطبيقات Java التي تستخدم ملفات Azure

تعرف على أساسيات تطوير تطبيقات Java التي تستخدم ملفات Azure لتخزين البيانات. أنشئ تطبيقًا لوحدة التحكم وتعلم الإجراءات الأساسية باستخدام واجهات برمجة تطبيقات Azure Files:

  • إنشاء مشاركات ملفات Azure وحذفها
  • إنشاء وحذف الدلائل
  • تعداد الملفات والدلائل في مشاركة ملف Azure
  • تحميل وتنزيل وحذف ملف

تلميح

تحقق من مستودع نماذج رمز تخزين Azure

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

ينطبق على

نوع مشاركة الملف SMB NFS
مشاركات الملفات القياسية (GPv2)، حسابات التخزين المكررة محليًا (LRS) وحسابات التخزين المكررة في المنطقة (ZRS) ‏‏نعم‬ لا
مشاركات الملفات القياسية (GPv2)، حساب تخزين مكرر جغرافي (GRS) أو حساب تخزين مكرر للمنطقة الجغرافية (GZRS) ‏‏نعم‬ لا
مشاركات الملفات المدفوعة (FileStorage)، حسابات التخزين المكررة محليًا (LRS) وحسابات التخزين المكررة في المنطقة (ZRS) ‏‏نعم‬ لا

قم بإنشاء تطبيق Java

لبناء العينات، ستحتاج إلى أداة تطوير Java (JDK) و مجموعة SDK لتخزين Azure لـ Java. ستحتاج أيضا إلى حساب تخزين Azure.

إعداد التطبيق خاصتك لاستخدام ملفات Azure

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

// Include the following imports to use Azure Files APIs
import com.azure.storage.file.share.*;

إعداد سلسلة اتصال تخزين Azure

لاستخدام ملفات Azure، تحتاج إلى الاتصال بحساب تخزين Azure خاصتك. قم بتكوين سلسلة اتصال واستخدمها للاتصال بحساب التخزين خاصتك. حدد متغيرًا ثابتًا للاحتفاظ بسلسلة الاتصال.

استبدل<اسم حساب التخزين> و <مفتاح حساب التخزين> بالقيم الفعلية لحساب التخزين خاصتك.

// Define the connection-string.
// Replace the values, including <>, with
// the values from your storage account.
public static final String connectStr = 
   "DefaultEndpointsProtocol=https;" +
   "AccountName=<storage_account_name>;" +
   "AccountKey=<storage_account_key>";

الوصول إلى مشاركة ملف Azure

للوصول إلى ملفات Azure، قم بإنشاء عنصر ShareClient. استخدم فئة ShareClientBuilder لإنشاء عنصر ShareClient جديد.

ShareClient shareClient = new ShareClientBuilder()
    .connectionString(connectStr).shareName(shareName)
    .buildClient();

إنشاء مشاركة ملف

يتم تخزين جميع الملفات والدلائل في ملفات Azure في حاوية تسمى الحصة.

تقوم طريقة ShareClient.create بإلقاء استثناء إذا كانت المشاركة موجودة بالفعل. ضع الاستدعاء لإنشاء في try/catch كتلة والتعامل مع الاستثناء.

public static Boolean createFileShare(String connectStr, String shareName)
{
    try
    {
        ShareClient shareClient = new ShareClientBuilder()
            .connectionString(connectStr).shareName(shareName)
            .buildClient();

        shareClient.create();
        return true;
    }
    catch (Exception e)
    {
        System.out.println("createFileShare exception: " + e.getMessage());
        return false;
    }
}

حذف مشاركة ملف

تحذف شفرة العينة التالية مشاركة ملف.

احذف مشاركة عن طريق الاتصال بطريقة ShareClient.delete .

public static Boolean deleteFileShare(String connectStr, String shareName)
{
    try
    {
        ShareClient shareClient = new ShareClientBuilder()
            .connectionString(connectStr).shareName(shareName)
            .buildClient();

        shareClient.delete();
        return true;
    }
    catch (Exception e)
    {
        System.out.println("deleteFileShare exception: " + e.getMessage());
        return false;
    }
}

إنشاء دليل

تنظيم التخزين عن طريق وضع الملفات داخل الدلائل الفرعية بدلاً من وجودها جميعها في الدليل الجذري.

تنشئ التعليمات البرمجية التالية دليلًا عن طريق الاتصال بـ ShareDirectoryClient.creatate . ترجع الطريقة التوضيحية قيمة Boolean تشير إلى ما إذا كانت قد أنشأت الدليل بنجاح.

public static Boolean createDirectory(String connectStr, String shareName,
                                        String dirName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        dirClient.create();
        return true;
    }
    catch (Exception e)
    {
        System.out.println("createDirectory exception: " + e.getMessage());
        return false;
    }
}

حذف دليل

حذف دليل هو مهمة مباشرة. لا يمكنك حذف دليل لا يزال يحتوي على ملفات أو أدلة فرعية.

تقوم طريقة ShareDirectoryClient.delete بإلقاء استثناء إذا كان الدليل غير موجود أو غير فارغ. ضع الاستدعاء لحذف في try/catch كتلة والتعامل مع الاستثناء.

public static Boolean deleteDirectory(String connectStr, String shareName,
                                        String dirName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        dirClient.delete();
        return true;
    }
    catch (Exception e)
    {
        System.out.println("deleteDirectory exception: " + e.getMessage());
        return false;
    }
}

تعداد الملفات والدلائل في مشاركة ملف Azure

احصل على قائمة بالملفات والدلائل عن طريق الاتصال بـ ShareDirectoryClient.listFilesAndDirectories . ترجع الطريقة قائمة كائنات ShareFileItem التي يمكنك التكرار عليها. يسرد الرمز التالي الملفات والدلائل داخل الدليل المحدد بواسطة معلمة dirName.

public static Boolean enumerateFilesAndDirs(String connectStr, String shareName,
                                                String dirName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        dirClient.listFilesAndDirectories().forEach(
            fileRef -> System.out.printf("Resource: %s\t Directory? %b\n",
            fileRef.getName(), fileRef.isDirectory())
        );

        return true;
    }
    catch (Exception e)
    {
        System.out.println("enumerateFilesAndDirs exception: " + e.getMessage());
        return false;
    }
}

تحميل ملف

تعلم كيفية تحميل ملف من التخزين المحلي.

يقوم الرمز التالي بتحميل ملف محلي إلى Azure Files عن طريق الاتصال بطريقة ShareFileClient.uploadFromFile . ترجع طريقة المثال التالية قيمة Boolean تشير إلى ما إذا كانت قد حمّلت الملف المحدد بنجاح.

public static Boolean uploadFile(String connectStr, String shareName,
                                    String dirName, String fileName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        ShareFileClient fileClient = dirClient.getFileClient(fileName);
        fileClient.create(1024);
        fileClient.uploadFromFile(fileName);
        return true;
    }
    catch (Exception e)
    {
        System.out.println("uploadFile exception: " + e.getMessage());
        return false;
    }
}

تنزيل ملف

واحدة من العمليات الأكثر تكرارًا هي تنزيل الملفات من مشاركة ملف Azure.

يقوم المثال التالي بتنزيل الملف المحدد إلى الدليل المحلي المحدد في معلمة destDir. تجعل الطريقة التوضيحية اسم الملف الذي تم تنزيله فريدًا من نوعه عن طريق تحضير التاريخ والوقت.

public static Boolean downloadFile(String connectStr, String shareName,
                                    String dirName, String destDir,
                                        String fileName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        ShareFileClient fileClient = dirClient.getFileClient(fileName);

        // Create a unique file name
        String date = new java.text.SimpleDateFormat("yyyyMMdd-HHmmss").format(new java.util.Date());
        String destPath = destDir + "/"+ date + "_" + fileName;

        fileClient.downloadToFile(destPath);
        return true;
    }
    catch (Exception e)
    {
        System.out.println("downloadFile exception: " + e.getMessage());
        return false;
    }
}

حذف ملف

عملية أخرى شائعة في ملفات Azure هي حذف الملف.

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

public static Boolean deleteFile(String connectStr, String shareName,
                                    String dirName, String fileName)
{
    try
    {
        ShareDirectoryClient dirClient = new ShareFileClientBuilder()
             .connectionString(connectStr).shareName(shareName)
             .resourcePath(dirName)
             .buildDirectoryClient();

        ShareFileClient fileClient = dirClient.getFileClient(fileName);
        fileClient.delete();
        return true;
    }
    catch (Exception e)
    {
        System.out.println("deleteFile exception: " + e.getMessage());
        return false;
    }
}

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

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

للحصول على نماذج التعليمات البرمجية ذات الصلة باستخدام Java الإصدار 8 SDKs المهمل، راجع نماذج التعليمات البرمجية باستخدام Java الإصدار 8.