Vývoj aplikací v Javě, které používají Azure Files

Seznamte se se základy vývoje aplikací Java, které k ukládání dat používají Azure Files. Vytvořte konzolovou aplikaci a seznamte se se základními akcemi pomocí rozhraní API služby Soubory Azure:

  • Vytvoření a odstranění sdílených složek Azure
  • Vytváření a odstraňování adresářů
  • Vytvoření výčtu souborů a adresářů ve sdílené složce Azure
  • Nahrání, stažení a odstranění souboru

Tip

Projděte si úložiště s ukázkami kódu pro Azure Storage

Snadno použitelné a úplné ukázky kódu pro Azure Storage, které si můžete stáhnout a použít, jsou shrnuté v seznamu ukázky pro Azure Storage.

Platí pro

Typ sdílené složky SMB NFS
Sdílené složky úrovně Standard (GPv2), LRS/ZRS Yes No
Sdílené složky úrovně Standard (GPv2), GRS/GZRS Yes No
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS Yes No

Vytvoření aplikace Java

K sestavení ukázek budete potřebovat Sadu Java Development Kit (JDK) a sadu Azure Storage SDK pro Javu. Budete také potřebovat účet úložiště Azure.

Nastavení aplikace pro použití služby Azure Files

Pokud chcete použít rozhraní API služby Soubory Azure, přidejte do horní části souboru Java následující kód, ze kterého chcete získat přístup ke službě Azure Files.

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

Nastavení připojovací řetězec úložiště Azure

Pokud chcete použít službu Azure Files, musíte se připojit ke svému účtu úložiště Azure. Nakonfigurujte připojovací řetězec a použijte ho pro připojení k účtu úložiště. Definujte statickou proměnnou pro uložení připojovací řetězec.

Nahraďte <storage_account_name> a< storage_account_key> skutečnými hodnotami vašeho účtu úložiště.

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

Přístup ke sdílené složce Azure

Pokud chcete získat přístup ke službě Azure Files, vytvořte objekt ShareClient . Pomocí třídy ShareClientBuilder sestavte nový objekt ShareClient.

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

Vytvoření sdílené složky

Všechny soubory a adresáře v Azure Files se ukládají do kontejneru označovaného jako sdílená složka.

Metoda ShareClient.create vyvolá výjimku, pokud sdílená složka již existuje. Volání, které se má vytvořit, vložte do try/catch bloku a zpracujte výjimku.

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

Odstranění sdílené složky

Následující ukázkový kód odstraní sdílenou složku.

Odstraňte sdílenou složku voláním metody 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;
    }
}

Vytvoření adresáře

Uspořádejte úložiště tak, že soubory umístíte do podadresářů, a nemusíte je mít všechny v kořenovém adresáři.

Následující kód vytvoří adresář voláním ShareDirectoryClient.create. Ukázková metoda vrátí Boolean hodnotu označující, jestli se adresář úspěšně vytvořil.

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

Odstranění adresáře

Odstranění adresáře je jednoduchá úloha. Adresář, který stále obsahuje soubory nebo podadresáře, nemůžete odstranit.

Metoda ShareDirectoryClient.delete vyvolá výjimku, pokud adresář neexistuje nebo není prázdný. Vložte volání, které chcete odstranit , try/catch do bloku a zpracujte výjimku.

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

Vytvoření výčtu souborů a adresářů ve sdílené složce Azure

Seznam souborů a adresářů získáte voláním ShareDirectoryClient.listFilesAndDirectories. Metoda vrátí seznam Objektů ShareFileItem , na kterých můžete iterovat. Následující kód uvádí soubory a adresáře v adresáři určeném parametrem 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;
    }
}

Odeslání souboru

Zjistěte, jak nahrát soubor z místního úložiště.

Následující kód nahraje místní soubor do služby Azure Files voláním metody ShareFileClient.uploadFromFile . Následující příklad metoda vrátí Boolean hodnotu označující, zda úspěšně nahrál zadaný soubor.

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

Stažení souboru

Jednou z častějších operací je stažení souborů ze sdílené složky Azure.

Následující příklad stáhne zadaný soubor do místního adresáře zadaného v parametru destDir . Ukázková metoda vytvoří stažený název souboru jedinečný tak, že předem předečte datum a čas.

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

Odstranění souboru

Další běžnou operací Azure Files je odstranění souboru.

Následující kód odstraní zadaný soubor. Nejprve příklad vytvoří ShareDirectoryClient na základě parametru dirName . Pak kód získá ShareFileClient z klienta adresáře na základě parametru fileName . A konečně, ukázková metoda volá ShareFileClient.delete k odstranění souboru.

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

Další kroky

Pokud chcete získat další informace o dalších rozhraních API úložiště Azure, postupujte podle těchto odkazů.

Související ukázky kódu s využitím zastaralých sad Java verze 8 SDK najdete v ukázkách kódu s využitím Javy verze 8.