Développer pour Azure Files avec JavaDevelop for Azure Files with Java

Conseil

Consultez le référentiel d’exemples de code de Stockage AzureCheck out the Azure Storage code samples repository

Pour des exemples de code Stockage Azure de bout en bout faciles à utiliser que vous pouvez télécharger et exécuter, consultez notre liste Exemples Stockage Azure.For easy-to-use end-to-end Azure Storage code samples that you can download and run, please check out our list of Azure Storage Samples.

À propos de ce didacticielAbout this tutorial

Ce didacticiel décrit les principes fondamentaux de l’utilisation de Java pour développer des applications ou services qui utilisent Azure Files pour stocker les données de fichiers.This tutorial will demonstrate the basics of using Java to develop applications or services that use Azure Files to store file data. Dans ce tutoriel, nous allons créer une application console et montrer comment effectuer des actions de base avec Java et Azure Files :In this tutorial, we will create a console application and show how to perform basic actions with Java and Azure Files:

  • Créer et supprimer des partages de fichiers AzureCreate and delete Azure file shares
  • Créer et supprimer des répertoiresCreate and delete directories
  • Énumérer des fichiers et répertoires dans un partage de fichiers AzureEnumerate files and directories in an Azure file share
  • Charger, télécharger et supprimer un fichierUpload, download, and delete a file

Notes

Comme Azure Files est accessible sur SMB, vous pouvez écrire des applications qui accèdent au partage de fichiers Azure à l’aide des classes d’E/S Java standard.Because Azure Files may be accessed over SMB, it is possible to write applications that access the Azure file share using the standard Java I/O classes. Cet article indique comment écrire des applications qui utilisent le SDK Java de Stockage Azure, qui utilise l’API REST Azure Files pour communiquer avec Azure Files.This article will describe how to write applications that use the Azure Storage Java SDK, which uses the Azure Files REST API to talk to Azure Files.

Création d’une application JavaCreate a Java application

Pour générer les exemples, vous avez besoin du SDK Java et du SDK de Stockage Azure pour Java.To build the samples, you will need the Java Development Kit (JDK) and the Azure Storage SDK for Java. Vous devez également avoir préalablement créé un compte de stockage Azure.You should also have created an Azure storage account.

Configurer votre application pour utiliser Azure FilesSet up your application to use Azure Files

Pour utiliser les API de stockage Azure, ajoutez l’instruction suivante au début du fichier Java depuis lequel vous voulez accéder au service de stockage.To use the Azure storage APIs, add the following statement to the top of the Java file where you intend to access the storage service from.

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

Configuration d’une chaîne de connexion au stockage AzureSet up an Azure storage connection string

Pour utiliser Azure Files, vous devez vous connecter à votre compte de stockage Azure.To use Azure Files, you need to connect to your Azure storage account. La première étape consiste à configurer une chaîne de connexion, que nous allons utiliser pour nous connecter à votre compte de stockage.The first step would be to configure a connection string, which we'll use to connect to your storage account. Pour cela, nous allons définir une variable statique.Let's define a static variable to do that.

// Configure the connection-string with your values
public static final String storageConnectionString =
    "DefaultEndpointsProtocol=http;" +
    "AccountName=your_storage_account_name;" +
    "AccountKey=your_storage_account_key";

Notes

Remplacez your_storage_account_name (nom de votre compte de stockage) et your_storage_account_key (clé de votre compte de stockage) par les valeurs réelles de votre compte de stockage.Replace your_storage_account_name and your_storage_account_key with the actual values for your storage account.

Connexion à un compte de stockage AzureConnecting to an Azure storage account

Pour vous connecter à votre compte de stockage, vous devez utiliser l’objet CloudStorageAccount, en transmettant une chaîne de connexion à sa méthode parse.To connect to your storage account, you need to use the CloudStorageAccount object, passing a connection string to its parse method.

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

CloudStorageAccount.parse lève une exception InvalidKeyException. Vous devrez donc le placer dans un bloc try/catch.CloudStorageAccount.parse throws an InvalidKeyException so you'll need to put it inside a try/catch block.

Crée un partage de fichiers AzureCreate an Azure file share

Tous les fichiers et répertoires dans Azure Files se trouvent dans un conteneur appelé Partage.All files and directories in Azure Files reside in a container called a Share. Votre compte de stockage peut avoir autant de partages que le permet la capacité de votre compte.Your storage account can have as many shares as your account capacity allows. Pour pouvoir accéder à un partage et à son contenu, vous devez utiliser un client Azure Files.To obtain access to a share and its contents, you need to use an Azure Files client.

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

À l’aide de ce dernier, vous pouvez ensuite obtenir une référence à un partage.Using the Azure Files client, you can then obtain a reference to a share.

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

Pour créer le partage, utilisez la méthode createIfNotExists de l’objet CloudFileShare.To actually create the share, use the createIfNotExists method of the CloudFileShare object.

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

À ce stade, le partage contient une référence à un partage nommé sampleshare.At this point, share holds a reference to a share named sampleshare.

Supprimer un partage de fichiers AzureDelete an Azure file share

La suppression d’un partage s’effectue en appelant la méthode deleteIfExists sur un objet CloudFileShare.Deleting a share is done by calling the deleteIfExists method on a CloudFileShare object. Voici un exemple de code permettant d’effectuer cette opération.Here's sample code that does that.

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

Créer un répertoireCreate a directory

Vous pouvez également organiser le stockage en plaçant des fichiers dans des sous-répertoires, plutôt que de tous les mettre dans le répertoire racine.You can also organize storage by putting files inside subdirectories instead of having all of them in the root directory. Azure Files vous permet de créer autant de répertoires que le permet votre compte.Azure Files allows you to create as many directories as your account will allow. Le code ci-dessous crée un sous-répertoire nommé sampledir sous le répertoire racine.The code below will create a subdirectory named sampledir under the root directory.

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

Supprimer un répertoireDelete a directory

La suppression d’un répertoire est une tâche simple. Notez, toutefois, que vous ne pouvez pas supprimer un répertoire s’il contient des fichiers ou d’autres répertoires.Deleting a directory is a straightforward task, although it should be noted that you cannot delete a directory that still contains files or other directories.

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

Énumérer des fichiers et répertoires dans un partage de fichiers AzureEnumerate files and directories in an Azure file share

Il est facile d’obtenir la liste de fichiers et de répertoires d’un partage en appelant listFilesAndDirectories sur une référence CloudFileDirectory.Obtaining a list of files and directories within a share is easily done by calling listFilesAndDirectories on a CloudFileDirectory reference. La méthode renvoie une liste d’objets ListFileItem sur laquelle vous pouvez effectuer une itération.The method returns a list of ListFileItem objects which you can iterate on. Par exemple, le code suivant répertorie les fichiers et répertoires du répertoire racine.As an example, the following code will list files and directories inside the root directory.

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

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

Charger un fichierUpload a file

Cette section décrit comment télécharger un fichier du stockage local vers le répertoire racine d’un partage.In this section, you'll learn how to upload a file from local storage onto the root directory of a share.

La première étape du téléchargement d’un fichier consiste à obtenir une référence au répertoire dans lequel ce fichier doit résider.The first step in uploading a file is to obtain a reference to the directory where it should reside. Pour cela, vous devez appeler la méthode getRootDirectoryReference de l’objet de partage.You do this by calling the getRootDirectoryReference method of the share object.

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

Maintenant que vous avez une référence au répertoire racine du partage, vous pouvez télécharger un fichier vers ce répertoire à l’aide du code ci-après.Now that you have a reference to the root directory of the share, you can upload a file onto it using the following code.

        // Define the path to a local file.
        final String filePath = "C:\\temp\\Readme.txt";
    
        CloudFile cloudFile = rootDir.getFileReference("Readme.txt");
        cloudFile.uploadFromFile(filePath);

Téléchargement d’un fichierDownload a file

Le téléchargement de fichiers est l’une des opérations les plus fréquentes que vous effectuerez sur Azure Files.One of the more frequent operations you will perform against Azure Files is to download files. Dans l’exemple suivant, le code télécharge SampleFile.txt et affiche son contenu.In the following example, the code downloads SampleFile.txt and displays its contents.

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

Supprimer un fichierDelete a file

La suppression de fichiers est également une opération courante dans Azure Files.Another common Azure Files operation is file deletion. Le code suivant supprime un fichier nommé SampleFile.txt et stocké dans un répertoire nommé sampledir.The following code deletes a file named SampleFile.txt stored inside a directory named 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");
}

Étapes suivantesNext steps

Pour en savoir plus sur les autres API de stockage Azure, suivez ces liens.If you would like to learn more about other Azure storage APIs, follow these links.