Utveckla för Azure Files med Java

Lär dig grunderna för att utveckla Java-program som använder Azure Files för att lagra data. Skapa ett konsolprogram och lär dig grundläggande åtgärder med Azure Files API:er:

  • Skapa och ta bort Azure-filresurser
  • Skapa och ta bort kataloger
  • Räkna upp filer och kataloger i en Azure-filresurs
  • Ladda upp, ladda ned och ta bort en fil

Tips

Ta en titt på databasen med Azure Storage-kodexempel

Lättanvända Azure Storage-kodexempel från slutpunkt till slutpunkt som du kan ladda ned och köra finns i vår lista med Azure Storage-exempel.

Gäller för

Typ av filresurs SMB NFS
Standardfilresurser (GPv2), LRS/ZRS Ja Inga
Standardfilresurser (GPv2), GRS/GZRS Ja Inga
Premiumfilresurser (FileStorage), LRS/ZRS Ja Nej

Skapa ett Java-program

För att skapa exemplen behöver du Java Development Kit (JDK) och Azure Storage SDK för Java. Du bör också ha skapat ett Azure Storage-konto.

Konfigurera programmet så att det använder Azure Files

Om du vill använda Azure Files API:er lägger du till följande kod överst i Java-filen där du tänker komma åt Azure Files.

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

Konfigurera en Anslutningssträng för Azure Storage

Om du vill använda Azure Files måste du ansluta till ditt Azure Storage-konto. Konfigurera en anslutningssträng och använd den för att ansluta till ditt lagringskonto. Definiera en statisk variabel som ska innehålla anslutningssträngen.

Ersätt <storage_account_name> och <storage_account_key> med de faktiska värdena för ditt lagringskonto.

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

Få åtkomst till en Azure-filresurs

Om du vill komma åt Azure Files skapar du ett ShareClient-objekt. Använd klassen ShareClientBuilder för att skapa ett nytt ShareClient-objekt .

ShareClient shareClient = new ShareClientBuilder()
    .connectionString(connectStr).shareName(shareName)
    .buildClient();

Skapa en filresurs

Alla filer och kataloger i Azure Files lagras i en container som kallas resurs.

Metoden ShareClient.create genererar ett undantag om resursen redan finns. Placera anropet för att skapa i ett try/catch block och hantera undantaget.

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

Ta bort en filresurs

Följande exempelkod tar bort en filresurs.

Ta bort en resurs genom att anropa metoden 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;
    }
}

Skapa en katalog

Organisera lagringen genom att placera filer i underkataloger i stället för att ha alla i rotkatalogen.

Följande kod skapar en katalog genom att anropa ShareDirectoryClient.create. Exempelmetoden returnerar ett Boolean värde som anger om katalogen har skapats.

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

Ta bort en katalog

Det är enkelt att ta bort en katalog. Du kan inte ta bort en katalog som fortfarande innehåller filer eller underkataloger.

Metoden ShareDirectoryClient.delete genererar ett undantag om katalogen inte finns eller inte är tom. Placera anropet för att ta bort i ett try/catch block och hantera undantaget.

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

Räkna upp filer och kataloger i en Azure-filresurs

Hämta en lista över filer och kataloger genom att anropa ShareDirectoryClient.listFilesAndDirectories. Metoden returnerar en lista över ShareFileItem-objekt som du kan iterera på. Följande kod visar filer och kataloger i katalogen som anges av dirName-parametern .

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

Ladda upp en fil

Lär dig hur du laddar upp en fil från lokal lagring.

Följande kod laddar upp en lokal fil till Azure Files genom att anropa metoden ShareFileClient.uploadFromFile. Följande exempelmetod returnerar ett Boolean värde som anger om den har laddat upp den angivna filen.

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

Ladda ned en fil

En av de vanligaste åtgärderna är att ladda ned filer från en Azure-filresurs.

I följande exempel laddas den angivna filen ned till den lokala katalog som anges i parametern destDir . Exempelmetoden gör det nedladdade filnamnet unikt genom att vänta på datum och tid.

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

Ta bort en fil

En annan vanlig Azure Files åtgärd är filborttagning.

Följande kod tar bort den angivna filen. Först skapar exemplet en ShareDirectoryClient baserat på parametern dirName . Sedan hämtar koden en ShareFileClient från katalogklienten baserat på parametern fileName . Slutligen anropar exempelmetoden ShareFileClient.delete för att ta bort filen.

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

Nästa steg

Om du vill veta mer om andra Azure Storage-API:er följer du dessa länkar.

Relaterade kodexempel med inaktuella Java version 8-SDK:er finns i Kodexempel med Java version 8.