Partilhar via


Exemplos de código de Compartilhamento de Arquivos do Azure usando bibliotecas de cliente Java versão 8

Este artigo mostra exemplos de código que usam a versão 8 da biblioteca de cliente do Compartilhamento de Arquivos do Azure para Java.

Em 31 de março de 2023, desativamos o suporte para bibliotecas do SDK do Azure que não estão em conformidade com as diretrizes atuais do SDK do Azure. As novas bibliotecas do SDK do Azure são atualizadas regularmente para promover experiências consistentes e fortalecer a sua postura de segurança. É recomendável fazer a transição para as novas bibliotecas do SDK do Azure para aproveitar os novos recursos e as atualizações críticas de segurança.

Embora as bibliotecas mais antigas ainda possam ser usadas após 31 de março de 2023, elas não receberão mais suporte e atualizações oficiais da Microsoft. Para obter mais informações, consulte o anúncio de aposentadoria de suporte.

Pré-requisitos

Para usar a biblioteca de cliente do Compartilhamento de Arquivos do Azure, adicione as seguintes import diretivas:

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

Acessar um compartilhamento de arquivos do Azure

Artigo relacionado: Desenvolver para arquivos do Azure com Java

Para acessar sua conta de armazenamento, use o objeto CloudStorageAccount , passando a cadeia de conexão para seu método de análise .

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

CloudStorageAccount.parse lança um InvalidKeyException para que você precise colocá-lo dentro de um bloco try/catch.

Criar uma partilha de ficheiros

Artigo relacionado: Desenvolver para arquivos do Azure com Java

Todos os arquivos e diretórios nos Arquivos do Azure são armazenados em um contêiner chamado compartilhamento.

Para obter acesso a um compartilhamento e seu conteúdo, crie um cliente do Azure Files. O exemplo de código a seguir mostra como criar um compartilhamento de arquivos:

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

Usando o cliente Arquivos do Azure, você pode obter uma referência a um compartilhamento.

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

Para realmente criar o compartilhamento, use o método createIfNotExists do objeto CloudFileShare.

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

Neste ponto, o compartilhamento mantém uma referência a um compartilhamento chamado compartilhamento de amostra.

Eliminar partilhas de ficheiros

Artigo relacionado: Desenvolver para arquivos do Azure com Java

O código de exemplo a seguir exclui um compartilhamento de arquivos.

Exclua um compartilhamento chamando o método deleteIfExists em um objeto 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();
}

Criar um diretório

Artigo relacionado: Desenvolver para arquivos do Azure com Java

Você pode organizar o armazenamento colocando arquivos dentro de subdiretórios em vez de ter todos eles no diretório raiz.

O código a seguir cria um subdiretório chamado sampledir no diretório raiz:

//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");
}

Eliminar um diretório

Artigo relacionado: Desenvolver para arquivos do Azure com Java

O exemplo de código a seguir mostra como excluir um diretório. Não é possível excluir um diretório que ainda contenha arquivos ou subdiretórios.

// 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");
}

Enumerar arquivos e diretórios em um compartilhamento de arquivos do Azure

Artigo relacionado: Desenvolver para arquivos do Azure com Java

Obtenha uma lista de arquivos e diretórios chamando listFilesAndDirectories em uma referência do CloudFileDirectory . O método retorna uma lista de objetos ListFileItem nos quais você pode iterar.

O código a seguir lista arquivos e diretórios dentro do diretório raiz:

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

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

Carregar um ficheiro

Artigo relacionado: Desenvolver para arquivos do Azure com Java

Obtenha uma referência ao diretório onde o arquivo será carregado chamando o método getRootDirectoryReference no objeto share.

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

Agora que você tem uma referência ao diretório raiz do compartilhamento, você pode carregar um arquivo nele usando o seguinte código:

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

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

Transferir um ficheiro

Artigo relacionado: Desenvolver para arquivos do Azure com Java

O exemplo a seguir baixa SampleFile.txt e exibe seu conteúdo:

//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());

Eliminar um ficheiro

Artigo relacionado: Desenvolver para arquivos do Azure com Java

O código a seguir exclui um arquivo chamado SampleFile.txt armazenado dentro de um diretório chamado 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");
}