Tworzenie aplikacji Java korzystających z usługi Azure Files
Poznaj podstawy tworzenia aplikacji Java, które używają usługi Azure Files do przechowywania danych. Utwórz aplikację konsolową i poznaj podstawowe akcje przy użyciu interfejsów API usługi Azure Files:
- Tworzenie i usuwanie udziałów plików platformy Azure
- Tworzenie i usuwanie katalogów
- Wyliczanie plików i katalogów w udziale plików platformy Azure
- Przekazywanie, pobieranie i usuwanie pliku
Napiwek
Zapoznaj się z repozytorium przykładów kodu usługi Azure Storage
Nasza lista przykładów usługi Azure Storage zawiera łatwe w użyciu kompleksowe przykłady kodu usługi Azure Storage, które można pobierać i uruchamiać.
Dotyczy
Typ udziału plików | SMB | NFS |
---|---|---|
Udziały plików w warstwie Standardowa (GPv2), LRS/ZRS | ||
Udziały plików w warstwie Standardowa (GPv2), GRS/GZRS | ||
Udziały plików w warstwie Premium (FileStorage), LRS/ZRS |
Tworzenie aplikacji Java
Aby utworzyć przykłady, potrzebujesz zestawu Java Development Kit (JDK) i zestawu SDK usługi Azure Storage dla języka Java. Potrzebne będzie również konto usługi Azure Storage.
Konfigurowanie aplikacji do korzystania z usługi Azure Files
Aby użyć interfejsów API usługi Azure Files, dodaj następujący kod na początku pliku Java, z którego zamierzasz uzyskać dostęp do usługi Azure Files.
// Include the following imports to use Azure Files APIs
import com.azure.storage.file.share.*;
Konfigurowanie usługi Azure Storage parametry połączenia
Aby korzystać z usługi Azure Files, musisz nawiązać połączenie z kontem usługi Azure Storage. Skonfiguruj parametry połączenia i użyj go do nawiązania połączenia z kontem magazynu. Zdefiniuj zmienną statyczną do przechowywania parametry połączenia.
Zastąp <storage_account_name> i <storage_account_key> wartościami rzeczywistymi dla konta magazynu.
// 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>";
Uzyskiwanie dostępu do udziału plików platformy Azure
Aby uzyskać dostęp do usługi Azure Files, utwórz obiekt ShareClient . Użyj klasy ShareClientBuilder, aby utworzyć nowy obiekt ShareClient.
ShareClient shareClient = new ShareClientBuilder()
.connectionString(connectStr).shareName(shareName)
.buildClient();
Tworzenie udziału plików
Wszystkie pliki i katalogi w usłudze Azure Files są przechowywane w kontenerze nazywanym udziałem.
Metoda ShareClient.create zgłasza wyjątek, jeśli udział już istnieje. Umieść wywołanie w celu utworzenia try/catch
w bloku i obsłuż wyjątek.
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;
}
}
Usuwanie udziału plików
Poniższy przykładowy kod usuwa udział plików.
Usuń udział, wywołując metodę 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;
}
}
Tworzenie katalogu
Organizuj magazyn, umieszczając pliki wewnątrz podkatalogów, a nie wszystkie z nich w katalogu głównym.
Poniższy kod tworzy katalog przez wywołanie metody ShareDirectoryClient.create. Przykładowa metoda zwraca wartość wskazującą Boolean
, czy pomyślnie utworzono katalog.
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;
}
}
Usuwanie katalogu
Usuwanie katalogu jest prostym zadaniem. Nie można usunąć katalogu, który nadal zawiera pliki lub podkatalogi.
Metoda ShareDirectoryClient.delete zgłasza wyjątek, jeśli katalog nie istnieje lub nie jest pusty. Umieść wywołanie w celu usunięcia w try/catch
bloku i obsłuż wyjątek.
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;
}
}
Wyliczanie plików i katalogów w udziale plików platformy Azure
Pobierz listę plików i katalogów, wywołując element ShareDirectoryClient.listFilesAndDirectories. Metoda zwraca listę obiektów ShareFileItem , na których można iterować. Poniższy kod zawiera listę plików i katalogów w katalogu określonym przez parametr 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;
}
}
Przekazywanie pliku
Dowiedz się, jak przekazać plik z magazynu lokalnego.
Poniższy kod przekazuje plik lokalny do usługi Azure Files, wywołując metodę ShareFileClient.uploadFromFile . Poniższa przykładowa metoda zwraca wartość wskazującą Boolean
, czy pomyślnie przekazano określony plik.
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;
}
}
Pobieranie pliku
Jedną z częstszych operacji jest pobieranie plików z udziału plików platformy Azure.
Poniższy przykład pobiera określony plik do katalogu lokalnego określonego w parametrze destDir . Przykładowa metoda sprawia, że pobrana nazwa pliku jest unikatowa, poprzedzając datę i godzinę.
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;
}
}
Usuwanie pliku
Inną typową operacją usługi Azure Files jest usunięcie pliku.
Poniższy kod usuwa określony plik. Najpierw przykład tworzy element ShareDirectoryClient na podstawie parametru dirName . Następnie kod pobiera element ShareFileClient z klienta katalogu na podstawie parametru fileName . Na koniec przykładowa metoda wywołuje metodę ShareFileClient.delete , aby usunąć plik.
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;
}
}
Następne kroki
Jeśli chcesz dowiedzieć się więcej o innych interfejsach API usługi Azure Storage, skorzystaj z tych linków.
- Azure dla deweloperów języka Java
- Zestaw Azure SDK dla języka Java
- Zestaw Azure SDK dla systemu Android
- Dokumentacja zestawu JAVA SDK dla biblioteki klienta udziału plików platformy Azure
- Interfejs API REST usług Azure Storage
- Blog zespołu odpowiedzialnego za usługę Azure Storage
- Transfer danych za pomocą narzędzia wiersza polecenia AzCopy
- Rozwiązywanie problemów z plikami platformy Azure
Aby uzyskać powiązane przykłady kodu korzystające z przestarzałych zestawów SDK języka Java w wersji 8, zobacz Przykłady kodu korzystające z języka Java w wersji 8.