Vývoj pro Soubory Azure pomocí Javy

Seznamte se se základy vývoje aplikací v Javě, 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 Azure Files:

  • Vytvoření a odstranění sdílených složek Azure
  • Vytváření a odstraňování adresářů
  • Výčet 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. Měli byste mít také vytvořený účet úložiště Azure.

Nastavení aplikace tak, aby používala Azure Files

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

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

Nastavení připojovacího řetězce služby Azure Storage

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

Nahraďte< storage_account_name> a <storage_account_key> skutečnými hodnotami pro váš účet ú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 k Azure Files, vytvořte objekt ShareClient. Pomocí třídy ShareClientBuilder vytvořte 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 jsou uložené v kontejneru označovaného jako sdílená složka.

Metoda ShareClient.create vyvolá výjimku, pokud sdílená složka již existuje. Vložte volání, které chcete vytvořit , 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ářů místo toho, abyste je všechny měli 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 adresář úspěšně vytvořila.

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ý úkol. Nemůžete odstranit adresář, který stále obsahuje soubory nebo podadresáře.

Metoda ShareDirectoryClient.delete vyvolá výjimku, pokud adresář neexistuje nebo není prázdný. Vložte volání odstranění dotry/catch 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;
    }
}

Výčet souborů a adresářů ve sdílené složce Azure

Získejte seznam souborů a adresářů voláním ShareDirectoryClient.listFilesAndDirectories. Metoda vrátí seznam ShareFileItem objektů, na kterých můžete iterovat. Následující kód obsahuje seznam souborů a adresářů 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;
    }
}

Nahrá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 Azure Files voláním metody ShareFileClient.uploadFromFile. Následující příklad metoda vrátí Boolean hodnotu označující, zda se ú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 dělá stažený název souboru jedinečný tím, že předem nastaví 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 Azure Files operací 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 . Nakonec ukázková metoda zavolá 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 služby Azure Storage, použijte tyto odkazy.

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