Bagikan melalui


Mengembangkan aplikasi Java yang menggunakan Azure Files

Pelajari dasar-dasar pengembangan aplikasi Java menggunakan Azure Files untuk menyimpan data. Buat aplikasi konsol dan pelajari tindakan dasar dengan menggunakan API Azure Files:

  • Membuat dan menghapus berbagi file Azure
  • Membuat dan menghapus direktori
  • Hitung file dan direktori dalam berbagi file Azure
  • Mengunggah, mengunduh, dan menghapus file

Tip

Lihat repositori contoh kode Azure Storage

Untuk contoh kode Azure Storage ujung ke ujung yang mudah digunakan yang dapat Anda unduh dan jalankan, lihat daftar Contoh Azure Storage kami.

Berlaku untuk

Jenis berbagi File SMB NFS
Berbagi file standar (GPv2), LRS/ZRS Ya Tidak
Berbagi file standar (GPv2), GRS/GZRS Ya Tidak
Berbagi file premium (FileStorage), LRS/ZRS Ya Tidak

Membuat aplikasi Java

Untuk membuat sampel, Anda memerlukan Java Development Kit (JDK) dan Azure Storage SDK for Java. Anda juga memerlukan akun penyimpanan Azure.

Atur aplikasi Anda untuk menggunakan Azure Files

Untuk menggunakan Azure Files API, tambahkan kode berikut ke bagian atas file Java dari tempat Anda berniat mengakses Azure Files.

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

Siapkan string koneksi Azure Storage

Untuk menggunakan Azure Files, Anda harus tersambung ke akun penyimpanan Azure Anda. Konfigurasikan string koneksi dan gunakan untuk menyambungkan ke akun penyimpanan Anda. Tentukan variabel statis untuk menampung string koneksi.

Ganti <storage_account_name> dan <storage_account_key> dengan nilai sebenarnya untuk akun penyimpanan Anda.

// 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>";

Akses berbagi file Azure

Untuk mengakses Azure Files, buat objek ShareClient. Gunakan kelas ShareClientBuilder untuk membangun objek ShareClient baru.

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

Membuat berbagi file

Semua file dan direktori di Azure Files disimpan dalam kontainer yang disebut berbagi.

Metode ShareClient.create memberi pengecualian jika berbagi sudah ada. Letakkan panggilan untuk buat dalam suatu try/catch blok dan tangani pengecualian.

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;
    }
}

Hapus berbagi file

Kode contoh berikut menghapus berbagi file.

Hapus berbagi dengan memanggil metode 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;
    }
}

Membuat direktori

Atur penyimpanan dengan meletakkan file di dalam subdirectories alih-alih meletakkan semuanya di direktori akar.

Kode berikut membuat direktori dengan cara memanggil ShareDirectoryClient.create. Metode contoh memberi Boolean nilai yang menunjukkan apakah berhasil membuat direktori.

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;
    }
}

Hapus direktori

Menghapus direktori adalah tugas yang sederhana. Anda tidak dapat menghapus direktori yang masih berisi file atau subdirektori.

Metode ShareDirectoryClient.delete memberi pengecualian jika direktori tidak ada atau tidak kosong. Letakkan panggilan untuk hapus dalam suatu try/catch blok dan tangani pengecualian.

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;
    }
}

Hitung file dan direktori dalam berbagi file Azure

Dapatkan daftar file dan direktori dengan memanggil ShareDirectoryClient.listFilesAndDirectories. Metode ini memberi daftar objek ShareFileItem tempat Anda dapat melakukan iterasi. Kode berikut mencantumkan file dan direktori di dalam direktori yang ditentukan oleh parameter 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;
    }
}

Mengunggah file

Pelajari bagaimana cara mengunggah file dari penyimpanan lokal.

Kode berikut mengunggah file lokal ke Azure Files dengan memanggil metode ShareFileClient.uploadFromFile. Metode contoh berikut memberi Boolean nilai yang menunjukkan apakah berhasil mengunggah file yang ditentukan.

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;
    }
}

Unduh file

Salah satu operasi yang lebih sering adalah mengunduh file dari berbagi file Azure.

Contoh berikut mengunduh file yang ditentukan ke direktori lokal yang ditentukan dalam parameter destDir. Metode contoh membuat nama file yang diunduh unik dengan menambahkan tanggal dan jam.

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;
    }
}

Hapus file

Operasi Azure Files umum lainnya adalah penghapusan file.

Kode berikut menghapus file yang dispesifikasikan. Pertama, contoh ini membuat ShareDirectoryClient berdasarkan parameter dirName. Kemudian, kode mendapat ShareFileClient dari klien direktori, berdasarkan parameter fileName. Yang terakhir, metode contoh memanggil ShareFileClient.delete untuk menghapus file.

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;
    }
}

Langkah berikutnya

Jika Anda ingin mempelajari selengkapnya tentang API penyimpanan Azure yang lain, ikuti tautan ini.

Untuk sampel kode terkait menggunakan Java versi 8 SDK yang tidak digunakan lagi, lihat Sampel kode menggunakan Java versi 8.