Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede Java için Azure Blob Depolama istemci kitaplığını kullanarak Azure Blob Depolama nasıl bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra kodunuzun Blob Depolama hizmetinin kapsayıcıları, blobları ve özellikleri üzerinde nasıl çalışabileceğini öğrenmek için geliştirici kılavuzlarını kullanın.
Tam bir örnekle başlamak istiyorsanız, Java için Hızlı Başlangıç: Azure Blob Depolama istemci kitaplığı bölümüne bakın.
API referansı | Paket (Maven) | Kütüphane kaynak kodu | Örnekler | Geri bildirim ver
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Azure depolama hesabı - depolama hesabı oluşturma
- Java Development Kit (JDK) sürüm 8 veya üzeri
- Apache Maven bu örnekte proje yönetimi için kullanılır
Projenizi ayarlama
Not
Bu makalede, örnek kodu derlemek ve çalıştırmak için Maven derleme aracı kullanılır. Gradle gibi diğer derleme araçları da Java için Azure SDK ile çalışır.
Maven'ı kullanarak yeni bir konsol uygulaması oluşturun veya var olan bir projeyi açın. Paketleri yüklemek ve gerekli import yönergeleri eklemek için bu adımları izleyin.
Paketleri yükleme
pom.xml Dosyayı metin düzenleyicinizde açın.
BOM dosyasını ekleyerek veya doğrudan bağımlılık ekleyerek paketleri yükleyin.
BOM dosyasını dahil et
Kitaplığın en son sürümüne bağımlılığı almak için azure-sdk-bom ekleyin. Aşağıdaki kod parçacığında yer tutucuyu {bom_version_to_target} sürüm numarasıyla değiştirin.
azure-sdk-bom kullanmak, her bir bağımlılığın sürümünü belirtmenize gerek kalmamanızı sağlar. Ürün reçetesi hakkında daha fazla bilgi edinmek için bkz . Azure SDK ÜRÜN REÇETESI BENİOKU.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-sdk-bom</artifactId>
<version>{bom_version_to_target}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Bağımlılık grubuna aşağıdaki bağımlılık öğelerini ekleyin. Azure hizmetlerine parolasız bağlantılar için azure-identity bağımlılığı gereklidir.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Doğrudan bağımlılık ekleme
Kitaplığın belirli bir sürümüne bağımlılığı almak için doğrudan bağımlılığı projenize ekleyin:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-common</artifactId>
<version>{package_version_to_target}</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{package_version_to_target}</version>
</dependency>
İçeri aktarma yönergelerini dahil et
Ardından kod dosyanızı açın ve gerekli import yönergeleri ekleyin. Bu örnekte, App.java dosyasına aşağıdaki yönergeleri ekleyeceğiz:
import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;
Blob istemci kitaplığı bilgileri:
- com.azure.storage.blob: Hizmet, kapsayıcılar ve bloblar üzerinde çalışmak için kullanabileceğiniz birincil sınıfları (istemci nesneleri) içerir.
- com.azure.storage.blob.models: Yardımcı program sınıflarını, yapılarını ve numaralandırma türlerini içerir.
- com.azure.storage.blob.specialized: Blob türüne özgü işlemleri gerçekleştirmek için kullanabileceğiniz sınıfları içerir (örneğin: ekleme blobları).
Erişimi yetkilendirme ve Blob Depolama'ya bağlanma
Bir uygulamayı Blob Depolama'ya bağlamak için BlobServiceClient sınıfının bir örneğini oluşturun. Zaman uyumsuz programlama için BlobServiceAsyncClient sınıfını da kullanabilirsiniz. Bu nesne, depolama hesabı düzeyinde veri kaynaklarıyla etkileşim kurmak için başlangıç noktanızdır. Bunu, depolama hesabı ve kapsayıcıları üzerinde çalışmak için kullanabilirsiniz. Çalışmanız gereken kaynağa bağlı olarak kapsayıcı istemcileri veya blob istemcileri oluşturmak için hizmet istemcisini de kullanabilirsiniz.
İstemci nesneleri oluşturma ve yönetme hakkında daha fazla bilgi edinmek için bkz . Veri kaynaklarıyla etkileşim kuran istemci nesneleri oluşturma ve yönetme.
Microsoft Entra yetkilendirme belirteci, hesap erişim anahtarı veya paylaşılan erişim imzası (SAS) kullanarak bir nesneyi yetkilandırabilirsiniz BlobServiceClient . En iyi güvenlik için Microsoft, blob verilerine yönelik istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra Id kullanılmasını önerir. Daha fazla bilgi için bkz . Microsoft Entra Id kullanarak bloblara erişimi yetkilendirme.
Microsoft Entra Id ile yetkilendirmek için bir güvenlik sorumlusu kullanmanız gerekir. İhtiyacınız olan güvenlik sorumlusu türü, uygulamanızın nerede çalıştığına bağlıdır. Kılavuz olarak aşağıdaki tabloyu kullanın:
| Uygulamanın çalıştığı yer | Güvenlik sorumlusu | Kılavuzluk |
|---|---|---|
| Yerel makine (geliştirme ve test) | Hizmet sorumlusu | Uygulamayı kaydetmeyi, bir Microsoft Entra grubu ayarlamayı, rolleri atamayı ve ortam değişkenlerini yapılandırmayı öğrenmek için bkz . Geliştirici hizmet sorumlularını kullanarak erişimi yetkilendirme. |
| Yerel makine (geliştirme ve test) | Kullanıcı kimliği | Microsoft Entra grubu ayarlamayı, rolleri atamayı ve Azure'da oturum açmayı öğrenmek için bkz . Geliştirici kimlik bilgilerini kullanarak erişimi yetkilendirme. |
| Azure'da barındırılan | Yönetilen kimlik | Yönetilen kimliği etkinleştirmeyi ve rol atamayı öğrenmek için bkz . Yönetilen kimlik kullanarak Azure tarafından barındırılan uygulamalardan erişimi yetkilendirme. |
| Azure dışında barındırılan (örneğin, şirket içi uygulamalar) | Hizmet sorumlusu | Uygulamayı kaydetmeyi, rolleri atamayı ve ortam değişkenlerini yapılandırmayı öğrenmek için bkz . Uygulama hizmet sorumlusu kullanarak şirket içi uygulamalardan erişimi yetkilendirme |
DefaultAzureCredential kullanarak erişimi yetkilendirme
Erişimi yetkilendirmenin ve Blob Depolama'ya bağlanmanın kolay ve güvenli bir yolu, DefaultAzureCredential örneği oluşturarak bir OAuth belirteci almaktır. Ardından bu kimlik bilgilerini kullanarak bir BlobServiceClient nesnesi oluşturabilirsiniz.
projenizi ayarlama bölümünde açıklandığı gibi pom.xml ve gerekli içeri aktarma yönergelerinde doğru bağımlılıklara sahip olduğunuzdan emin olun.
Aşağıdaki örnek, BlobServiceClientBuilder kullanılarak bir nesnesi oluşturmaktadır ve gerekirse kapsayıcı ve blob istemcilerinin nasıl oluşturulacağını gösterir:BlobServiceClient
// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<storage-account-name>.blob.core.windows.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
DNS adı aramaları için JVM TTL'yi yapılandırma
Java Sanal Makinesi (JVM), başarılı DNS adı aramalarından gelen yanıtları yaşam süresi (TTL) olarak bilinen belirli bir süre boyunca önbelleğe alır. Birçok JVM için varsayılan TTL değeri -1'dir ve bu, JVM'nin yanıtı süresiz olarak, veya JVM yeniden başlatılana kadar, önbelleğe aldığı anlamına gelir.
Azure kaynakları değişebilen DNS adı girdileri kullandığından, JVM TTL değerini 10 saniye olarak ayarlamanızı öneririz. Bu yapılandırma, bir kaynağın güncelleştirilmiş IP adresinin sonraki DNS sorgusuyla döndürülmesini sağlar.
TTL değerini JVM kullanan tüm uygulamalar için global olarak değiştirmek için networkaddress.cache.ttl özelliğini java.security dosyasında ayarlayın.
networkaddress.cache.ttl=10
Java 8 için java.security dosya dizininde $JAVA_HOME/jre/lib/security bulunur. Java 11 ve üzeri için dosya dizininde $JAVA_HOME/conf/security bulunur.
Uygulamanızı oluşturma
Azure Blob Depolama'daki veri kaynaklarıyla çalışacak uygulamalar oluştururken kodunuz öncelikli olarak üç kaynak türüyle etkileşim kurar: depolama hesapları, kapsayıcılar ve bloblar. Bu kaynak türleri, birbirleriyle ilişkileri ve uygulamaların kaynaklarla nasıl etkileşim kurduğu hakkında daha fazla bilgi edinmek için bkz . Uygulamaların Blob Depolama veri kaynaklarıyla nasıl etkileşim kuracaklarını anlama.
Aşağıdaki kılavuzlarda, Java için Azure Depolama istemci kitaplığını kullanarak verilere erişme ve belirli eylemleri gerçekleştirme adımları gösterilmektedir:
| Kılavuz | Açıklama |
|---|---|
| Yeniden deneme ilkesi yapılandırma | İstemci işlemleri için yeniden deneme ilkeleri uygulayın. |
| Blobları kopyalama | Blobu bir konumdan diğerine kopyalayın. |
| Kapsayıcı oluşturma | Blob kapsayıcıları oluştur. |
| Kullanıcı yetkilendirme SAS'ı oluşturma | Kapsayıcı veya blob için kullanıcı temsilcisi SAS'i oluşturun. |
| Blob kiralamalarını oluştur ve yönet | Blob üzerinde bir kilit oluşturun ve yönetin. |
| Kapsayıcı kiralamaları oluşturma ve yönetme | Kapsayıcıda kilit oluşturma ve yönetme. |
| Blobları silme ve geri yükleme | Blobları silin ve geçici silme etkinleştirildiyse silinen blobları geri yükleyin. |
| Kapsayıcıları silme ve geri yükleme | Kapsayıcıları silin ve geçici silme etkinleştirildiyse silinen kapsayıcıları geri yükleyin. |
| Blobları indirme | Dizeleri, akışları ve dosya yollarını kullanarak blobları indirin. |
| Etiketleri kullanarak blobları bulma | Etiketleri ayarlama ve almanın yanı sıra blobları bulmak için etiketleri kullanın. |
| Blobları listeleme | Blobları farklı şekillerde listeleyin. |
| Kapsayıcıları listeleme | Bir hesaptaki kapsayıcıları ve listeyi özelleştirmek için kullanılabilecek çeşitli seçenekleri listeleyin. |
| Özellikleri ve meta verileri (bloblar) yönetme | Bloblar için özellikleri ve meta verileri alın ve ayarlayın. |
| Özellikleri ve meta verileri (kapsayıcılar) yönetme | Kapsayıcıların özelliklerini ve meta verilerini alın ve ayarlayın. |
| Veri aktarımları için performans ayarlama | Veri aktarımı işlemleri için performansı iyileştirme. |
| Blob erişim katmanını ayarlama veya değiştirme | Blok blobu için erişim katmanını ayarlayın veya değiştirin. |
| Blobları karşıya yükleme | String'leri, akışları, dosya yollarını ve diğer yöntemleri kullanarak blob'ları karşıya yüklemeyi öğrenin. |