Azure Dosyalar kullanan Java uygulamaları geliştirme
Verileri depolamak için Azure Dosyalar kullanan Java uygulamaları geliştirmenin temellerini öğrenin. Konsol uygulaması oluşturma ve Azure Dosyalar API'leri kullanarak temel eylemleri öğrenme:
- Azure dosya paylaşımlarını oluşturma ve silme
- Dizin oluşturma ve silme
- Azure dosya paylaşımındaki dosyaları ve dizinleri listeleme
- Dosyayı karşıya yükleme, indirme ve silme
İpucu
Azure Depolama kod örnekleri havuzuna göz atın
İndirip çalıştırabileceğiniz kullanımı kolay uçtan uca Azure Depolama kod örnekleri lütfen Azure Depolama Örnekleri listemize bakın.
Şunlara uygulanır
Dosya paylaşımı türü | SMB | NFS |
---|---|---|
Standart dosya paylaşımları (GPv2), LRS/ZRS | ||
Standart dosya paylaşımları (GPv2), GRS/GZRS | ||
Premium dosya paylaşımları (filestorage), LRS/ZRS |
Java uygulaması oluşturma
Örnekleri derlemek için Java Geliştirme Seti (JDK) ve Java için Azure Depolama SDK'sı gerekir. Ayrıca bir Azure depolama hesabına da ihtiyacınız olacaktır.
Uygulamanızı Azure Dosyalar kullanacak şekilde ayarlama
Azure Dosyalar API'lerini kullanmak için, Azure Dosyalar erişmek istediğiniz Java dosyasının en üstüne aşağıdaki kodu ekleyin.
// Include the following imports to use Azure Files APIs
import com.azure.storage.file.share.*;
Azure depolama bağlantı dizesi ayarlama
Azure Dosyalar kullanmak için Azure depolama hesabınıza bağlanmanız gerekir. Bir bağlantı dizesi yapılandırın ve depolama hesabınıza bağlanmak için kullanın. bağlantı dizesi tutmak için statik bir değişken tanımlayın.
storage_account_name> ve <storage_account_key> değerini depolama hesabınızın gerçek değerleriyle değiştirin.<
// 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>";
Azure dosya paylaşımına erişme
Azure Dosyalar erişmek için bir ShareClient nesnesi oluşturun. Yeni bir ShareClient nesnesi oluşturmak için ShareClientBuilder sınıfını kullanın.
ShareClient shareClient = new ShareClientBuilder()
.connectionString(connectStr).shareName(shareName)
.buildClient();
Dosya paylaşımı oluşturma
Azure Dosyalar içindeki tüm dosyalar ve dizinler, paylaşım adı verilen bir kapsayıcıda depolanır.
ShareClient.create yöntemi, paylaşım zaten varsa bir özel durum oluşturur. Oluşturmak için çağrıyı bir try/catch
blok içine yerleştirin ve özel durumu işleyin.
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;
}
}
Dosya paylaşımını silme
Aşağıdaki örnek kod bir dosya paylaşımını siler.
ShareClient.delete yöntemini çağırarak bir paylaşımı silin .
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;
}
}
Dizin oluşturma
Dosyaları kök dizine yerleştirmek yerine alt dizinlere yerleştirerek depolamayı düzenleyin.
Aşağıdaki kod, ShareDirectoryClient.create çağrısı yaparak bir dizin oluşturur. Örnek yöntem, dizini başarıyla oluşturup oluşturmadığını belirten bir Boolean
değer döndürür.
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;
}
}
Bir dizini silme
Bir dizini silmek basit bir görevdir. Hala dosya veya alt dizin içeren bir dizini silemezsiniz.
ShareDirectoryClient.delete yöntemi, dizin yoksa veya boş değilse bir özel durum oluşturur. Silme çağrısını bir try/catch
blok içine yerleştirin ve özel durumu işleyin.
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;
}
}
Azure dosya paylaşımındaki dosyaları ve dizinleri listeleme
ShareDirectoryClient.listFilesAndDirectories öğesini çağırarak dosya ve dizinlerin listesini alın. yöntemi, yineleme yapabileceğiniz ShareFileItem nesnelerinin listesini döndürür. Aşağıdaki kod, dirName parametresi tarafından belirtilen dizin içindeki dosyaları ve dizinleri listeler.
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;
}
}
Dosyayı karşıya yükleme
Yerel depolama alanından dosya yüklemeyi öğrenin.
Aşağıdaki kod, ShareFileClient.uploadFromFile yöntemini çağırarak yerel bir dosyayı Azure Dosyalar yükler. Aşağıdaki örnek yöntem, belirtilen dosyayı başarıyla karşıya yükleyip yüklemediğini belirten bir Boolean
değer döndürür.
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;
}
}
Dosya indirme
Daha sık yapılan işlemlerden biri, azure dosya paylaşımından dosya indirmektir.
Aşağıdaki örnek, belirtilen dosyayı destDir parametresinde belirtilen yerel dizine indirir. Örnek yöntem, indirilen dosya adını tarih ve saat önceden ekleyerek benzersiz hale getirir.
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;
}
}
Dosya silme
Bir diğer yaygın Azure Dosyalar işlemi de dosya silme işlemidir.
Aşağıdaki kod belirtilen dosyayı siler. İlk olarak, örnek dirName parametresini temel alan bir ShareDirectoryClient oluşturur. Ardından kod, fileName parametresini temel alarak dizin istemcisinden bir ShareFileClient alır. Son olarak, örnek yöntem dosyayı silmek için ShareFileClient.delete dosyasını çağırır.
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;
}
}
Sonraki adımlar
Diğer Azure depolama API'leri hakkında daha fazla bilgi edinmek istiyorsanız bu bağlantıları izleyin.
- Java geliştiricileri için Azure
- Java için Azure SDK
- Android için Azure SDK
- Java SDK Başvurusu için Azure Dosya Paylaşımı istemci kitaplığı
- Azure Depolama Hizmetleri REST API'si
- Azure Depolama Ekibi Blogu
- AzCopy Komut Satırı Yardımcı Programı ile veri aktarımı
- Azure Dosyalarının Sorunlarını Giderme
Kullanım dışı bırakılan Java sürüm 8 SDK'larını kullanan ilgili kod örnekleri için bkz . Java sürüm 8'i kullanan kod örnekleri.