Przykłady kodu udziału plików platformy Azure przy użyciu bibliotek klienckich języka Java w wersji 8

W tym artykule przedstawiono przykłady kodu, które używają wersji 8 biblioteki klienta udziału plików platformy Azure dla języka Java.

31 marca 2023 r. wycofaliśmy obsługę bibliotek zestawu Azure SDK, które nie są zgodne z bieżącymi wytycznymi dotyczącymi zestawu Azure SDK. Nowe biblioteki zestawu Azure SDK są regularnie aktualizowane w celu zapewnienia spójnych środowisk i wzmocnienia stanu zabezpieczeń. Zaleca się przejście do nowych bibliotek zestawu Azure SDK w celu skorzystania z nowych możliwości i krytycznych aktualizacji zabezpieczeń.

Mimo że starsze biblioteki mogą być nadal używane poza 31 marca 2023 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.

Wymagania wstępne

Aby użyć biblioteki klienta udziału plików platformy Azure, dodaj następujące import dyrektywy:

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

Uzyskiwanie dostępu do udziału plików platformy Azure

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Aby uzyskać dostęp do konta magazynu, użyj obiektu CloudStorageAccount , przekazując parametry połączenia do metody analizy .

// Use the CloudStorageAccount object to connect to your storage account
try {
    CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);
} catch (InvalidKeyException invalidKey) {
    // Handle the exception
}

Element CloudStorageAccount.parse zgłasza wyjątek InvalidKeyException, więc musisz umieścić go w bloku try/catch.

Tworzenie udziału plików

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Wszystkie pliki i katalogi w Azure Files są przechowywane w kontenerze nazywanym udziałem.

Aby uzyskać dostęp do udziału i jego zawartości, utwórz klienta Azure Files. W poniższym przykładzie kodu pokazano, jak utworzyć udział plików:

// Create the Azure Files client.
CloudFileClient fileClient = storageAccount.createCloudFileClient();

Za pomocą klienta Azure Files można uzyskać odwołanie do udziału.

// Get a reference to the file share
CloudFileShare share = fileClient.getShareReference("sampleshare");

Aby utworzyć udział, użyj metody createIfNotExists obiektu CloudFileShare .

if (share.createIfNotExists()) {
    System.out.println("New share created");
}

W tym momencie udział przechowuje odwołanie do udziału o nazwie sample share.

Usuwanie udziału plików

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Poniższy przykładowy kod usuwa udział plików.

Usuń udział, wywołując metodę deleteIfExists w obiekcie CloudFileShare .

try
{
    // Retrieve storage account from connection-string.
    CloudStorageAccount storageAccount = CloudStorageAccount.parse(storageConnectionString);

    // Create the file client.
   CloudFileClient fileClient = storageAccount.createCloudFileClient();

   // Get a reference to the file share
   CloudFileShare share = fileClient.getShareReference("sampleshare");

   if (share.deleteIfExists()) {
       System.out.println("sampleshare deleted");
   }
} catch (Exception e) {
    e.printStackTrace();
}

Tworzenie katalogu

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Magazyn można organizować, umieszczając pliki wewnątrz podkatalogów zamiast mieć wszystkie z nich w katalogu głównym.

Poniższy kod tworzy podkatalog o nazwie sampledir w katalogu głównym:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

//Get a reference to the sampledir directory
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");

if (sampleDir.createIfNotExists()) {
    System.out.println("sampledir created");
} else {
    System.out.println("sampledir already exists");
}

Usuwanie katalogu

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

W poniższym przykładzie kodu pokazano, jak usunąć katalog. Nie można usunąć katalogu, który nadal zawiera pliki lub podkatalogi.

// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

// Get a reference to the directory you want to delete
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");

// Delete the directory
if ( containerDir.deleteIfExists() ) {
    System.out.println("Directory deleted");
}

Wyliczanie plików i katalogów w udziale plików platformy Azure

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Pobierz listę plików i katalogów, wywołując polecenie listFilesAndDirectories w dokumentacji CloudFileDirectory . Metoda zwraca listę obiektów ListFileItem , na których można iterować.

Poniższy kod wyświetla listę plików i katalogów w katalogu głównym:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

for ( ListFileItem fileItem : rootDir.listFilesAndDirectories() ) {
    System.out.println(fileItem.getUri());
}

Przekazywanie pliku

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Uzyskaj odwołanie do katalogu, w którym plik zostanie przekazany, wywołując metodę getRootDirectoryReference w obiekcie udziału.

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

Teraz, gdy masz odwołanie do katalogu głównego udziału, możesz przekazać do niego plik przy użyciu następującego kodu:

// Define the path to a local file.
final String filePath = "C:\\temp\\Readme.txt";

CloudFile cloudFile = rootDir.getFileReference("Readme.txt");
cloudFile.uploadFromFile(filePath);

Pobieranie pliku

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Poniższy przykład pobiera SampleFile.txt i wyświetla jego zawartość:

//Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

//Get a reference to the directory that contains the file
CloudFileDirectory sampleDir = rootDir.getDirectoryReference("sampledir");

//Get a reference to the file you want to download
CloudFile file = sampleDir.getFileReference("SampleFile.txt");

//Write the contents of the file to the console.
System.out.println(file.downloadText());

Usuwanie pliku

Powiązany artykuł: Programowanie dla Azure Files za pomocą języka Java

Poniższy kod usuwa plik o nazwie SampleFile.txt przechowywany w katalogu o nazwie sampledir:

// Get a reference to the root directory for the share.
CloudFileDirectory rootDir = share.getRootDirectoryReference();

// Get a reference to the directory where the file to be deleted is in
CloudFileDirectory containerDir = rootDir.getDirectoryReference("sampledir");

String filename = "SampleFile.txt"
CloudFile file;

file = containerDir.getFileReference(filename)
if ( file.deleteIfExists() ) {
    System.out.println(filename + " was deleted");
}