Develop for Azure Files with Java (Tworzenie oprogramowania dla usługi Azure Files przy użyciu języka Java)
Poznaj podstawy tworzenia aplikacji Java, które używają Azure Files do przechowywania danych. Utwórz aplikację konsolową i poznaj podstawowe akcje przy użyciu interfejsów API 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
Porada
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 skompilować przykłady, będziesz potrzebować zestawu Java Development Kit (JDK) i zestawu SDK usługi Azure Storage dla języka Java. Należy również utworzyć konto usługi Azure Storage.
Konfigurowanie aplikacji do używania Azure Files
Aby użyć interfejsów API Azure Files, dodaj następujący kod w górnej części pliku Java, z którego zamierzasz uzyskać dostęp do 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 użyć Azure Files, musisz nawiązać połączenie z kontem usługi Azure Storage. Skonfiguruj parametry połączenia i użyj jej 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 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 Azure Files są przechowywane w kontenerze nazywanym udziałem.
Metoda ShareClient.create zgłasza wyjątek, jeśli udział już istnieje. Umieść wywołanie, aby utworzyć w try/catch
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 zamiast wszystkich z nich w katalogu głównym.
Poniższy kod tworzy katalog, wywołując element ShareDirectoryClient.create. Przykładowa metoda zwraca wartość wskazującą Boolean
, czy katalog został pomyślnie utworzony.
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, aby usunąć 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 Azure Files przez wywołanie metody ShareFileClient.uploadFromFileFile. 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 pobranie 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ą 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.
- Platforma Azure dla deweloperów języka Java
- Zestaw Azure SDK dla języka Java
- Zestaw Azure SDK dla systemu Android
- Dokumentacja zestawu SDK udziału plików platformy Azure dla zestawu JAVA SDK
- Interfejs API REST usług Azure Storage
- Blog zespołu usługi 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.