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 | ||
Sdílené složky úrovně Standard (GPv2), GRS/GZRS | ||
Sdílené složky úrovně Premium (FileStorage), LRS/ZRS |
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ů.
- Azure pro vývojáře v Javě
- Azure SDK pro Javu
- Azure SDK pro Android
- Klientská knihovna sdílené složky Azure pro sadu Java SDK – referenční informace
- REST API služby Azure Storage
- Blog týmu Azure Storage
- Přenos dat pomocí nástroje příkazového řádku AzCopy
- Řešení problémů se Soubory Azure
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.