Utveckla Java-program som använder Azure Files
Lär dig grunderna i 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 hjälp av 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
Dricks
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 | ||
Standardfilresurser (GPv2), GRS/GZRS | ||
Premiumfilresurser (FileStorage), LRS/ZRS |
Skapa ett Java-program
För att skapa exemplen behöver du Java Development Kit (JDK) och Azure Storage SDK för Java. Du behöver också ett Azure Storage-konto.
Konfigurera ditt program så att det använder Azure Files
Om du vill använda Azure Files-API:erna 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 Azure Storage-niska veze
Om du vill använda Azure Files måste du ansluta till ditt Azure Storage-konto. Konfigurera en niska veze och använd den för att ansluta till ditt lagringskonto. Definiera en statisk variabel som ska innehålla niska veze.
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
Skapa ett ShareClient-objekt för att få åtkomst till Azure Files. 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
Att ta bort en katalog är en enkel uppgift. 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 parametern 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;
}
}
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 katalogen som anges i parametern destDir . Exempelmetoden gör det nedladdade filnamnet unikt genom att föregripa 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.
- Azure för Java-utvecklare
- Azure SDK för Java
- Azure SDK för Android
- Azure File Share-klientbibliotek för Java SDK-referens
- REST-API för Azure Storage Services
- Azure Storage-teamets blogg
- Överföra data med kommandoradsverktyget AzCopy
- Felsök Azure Files
Relaterade kodexempel med inaktuella Java version 8 SDK:er finns i Kodexempel med Java version 8.