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 | ||
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. 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.
- Azure pro vývojáře v Javě
- Azure SDK pro Javu
- Azure SDK pro Android
- Referenční informace ke klientské knihovně sdílených složek Azure pro sadu Java SDK
- 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 tématu Ukázky kódu s využitím Javy verze 8.