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 öğreticide, bir Spring Boot uygulamasından Azure Blob Depolama hesabındaki kapsayıcı bloblarını yükleme ve okuma işlemlerinin nasıl yapılacağı gösterilmektedir.
Azure Blob Depolama, Microsoft'un bulut için nesne depolama çözümüdür. Blob depolama, metin veya ikili veri gibi çok büyük miktarda yapılandırılmamış veriyi depolamak için iyileştirilmiştir.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri.
- Apache Maven, sürüm 3.0 veya üzeri.
- cURL veya işlevselliği test etmek için benzer bir HTTP yardımcı programı.
- Azure depolama hesabı ve kapsayıcısı. Hesabınız yoksa bir depolama hesabı oluşturun.
- Spring Boot uygulaması. Maven projeniz yoksa, Spring Initializr ile bir proje oluşturun. Maven Projesi'ni seçtiğinizden ve Bağımlılıklar'ın altında Spring Web bağımlılığını eklediğinizden ve ardından Java sürüm 8 veya üzerini seçtiğinizden emin olun.
Not
Hesabınıza kaynaklara erişim sağlaması için, yeni oluşturduğunuz Azure Depolama hesabınızda şu anda kullanılmakta olduğunuz Microsoft Entra hesabına Storage Blob Data Contributor
rolünü atayın. Daha fazla bilgi edinmek için bkz. Azure portal kullanarak Azure rolleri atama.
Önemli
Bu öğreticideki adımları tamamlamak için Spring Boot sürüm 2.5 veya üzeri gereklidir.
Kapsayıcı oluşturma
İlk olarak, 'Quickstart: Azure portalı ile blob'ları yükle, indir ve listele' talimatlarını izleyerek testcontainer
adlı bir kapsayıcı oluşturun.
Azure Depolama hesabı kapsayıcısına blobları yükleyin ve okuyun.
Artık bir Azure Depolama hesabınız ve kapsayıcınız olduğuna göre Spring Cloud Azure ile bloblardan dosyaları karşıya yükleyebilir ve okuyabilirsiniz.
Spring Cloud Azure Depolama Blob Starter modülünü yüklemek için pom.xml dosyanıza aşağıdaki bağımlılıkları ekleyin:
Spring Cloud Azure Ürün Reçetesi (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.22.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Not
Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependencies
sürümünü4.20.0
olarak ayarladığınızdan emin olun. Bu Ürün Reçetesi (BOM),<dependencyManagement>
bölümüne pom.xml dosyanızda yapılandırılmalıdır. Bu, tüm Spring Cloud Azure bağımlılıklarının aynı sürümü kullanmasını sağlar. Bu BOM için kullanılan sürüm hakkında daha fazla bilgi edinmek için Hangi Sürüm Spring Cloud Azure'ı Kullanmalıyım bölümüne bakın.Spring Cloud Azure Depolama Blob Starter bileşeni:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Uygulamayı kodlama
Spring Cloud Azure Depolama Blobu başlatıcısını kullanarak bloblardan dosya yüklemek ve okumak için aşağıdaki adımları kullanarak uygulamayı yapılandırın.
Aşağıdaki örnekte gösterildiği gibi application.properties yapılandırma dosyasında bir Depolama hesabı adı ve uç noktası yapılandırın.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}
Aşağıdaki örnekte gösterildiği gibi yeni
BlobController
bir Java sınıfı oluşturun. Bu sınıf, Azure Depolama hesabındaki blob kapsayıcısından dosyaları yüklemek ve okumak için kullanılır.package com.example.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; import org.springframework.core.io.WritableResource; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; @RestController @RequestMapping("blob") public class BlobController { @Value("azure-blob://testcontainer/test.txt") private Resource blobFile; @GetMapping("/readBlobFile") public String readBlobFile() throws IOException { return StreamUtils.copyToString( this.blobFile.getInputStream(), Charset.defaultCharset()); } @PostMapping("/writeBlobFile") public String writeBlobFile(@RequestBody String data) throws IOException { try (OutputStream os = ((WritableResource) this.blobFile).getOutputStream()) { os.write(data.getBytes()); } return "file was updated"; } }
İpucu
Bu öğreticide yapılandırmalarda veya kodda kimlik doğrulama işlemi yoktur. Ancak Azure hizmetlerine bağlanmak için kimlik doğrulaması gerekir. Kimlik doğrulamasını tamamlamak için Azure Identity kullanmanız gerekir. Spring Cloud Azure, azure kimlik kitaplığının herhangi bir kod değişikliği yapmadan kimlik bilgilerini almanıza yardımcı olmak için sağladığı öğesini kullanır
DefaultAzureCredential
.DefaultAzureCredential
birden çok kimlik doğrulama yöntemini destekler ve çalışma zamanında hangi yöntemin kullanılacağını belirler. Bu yaklaşım, uygulamanızın ortama özgü kod uygulamadan farklı ortamlarda (yerel ve üretim ortamları gibi) farklı kimlik doğrulama yöntemleri kullanmasını sağlar. Daha fazla bilgi için bkz . DefaultAzureCredential.Yerel geliştirme ortamlarında kimlik doğrulamasını tamamlamak için Azure CLI, Visual Studio Code, PowerShell veya diğer yöntemleri kullanabilirsiniz. Daha fazla bilgi için bkz . Java geliştirme ortamlarında Azure kimlik doğrulaması. Azure barındırma ortamlarında kimlik doğrulamasını tamamlamak için kullanıcı tarafından atanan yönetilen kimliği kullanmanızı öneririz. Daha fazla bilgi için bkz. Azure kaynakları için yönetilen kimlikler nelerdir?
Uygulamanız çalıştırıldıktan sonra aşağıdaki adımları izleyerek uygulamanızı test etmek için kullanın
curl
.Aşağıdaki komutu kullanarak dosyanın içeriğini güncelleştirmek için post isteği gönderin:
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"
ifadesini
file was updated
içeren bir yanıt görmeniz gerekir.Aşağıdaki komutu kullanarak dosyanın içeriğini doğrulamak için bir GET isteği gönderin:
curl -X GET http://localhost:8080/blob/readBlobFile
Gönderdiğiniz "yeni ileti" metnini görmeniz gerekir.
Azure Spring Apps'e dağıtın
Spring Boot uygulamasını yerel olarak çalıştırdığınıza göre artık uygulamayı üretim ortamına taşımanın zamanı geldi. Azure Spring Apps , kod değişikliği yapmadan Spring Boot uygulamalarını Azure'a dağıtmayı kolaylaştırır. Hizmet, geliştiricilerin kodlarına odaklanabilmesi için Spring uygulamalarının altyapısını yönetir. Azure Spring Apps kapsamlı izleme ve tanılama, yapılandırma yönetimi, hizmet bulma, CI/CD tümleştirmesi, mavi-yeşil dağıtımlar ve daha fazlasını kullanarak yaşam döngüsü yönetimi sağlar. Uygulamanızı Azure Spring Apps'e dağıtmak için bkz . İlk uygulamanızı Azure Spring Apps'e dağıtma.
Sonraki adımlar
Spring ve Azure hakkında daha fazlasını öğrenmek için Azure’da Spring belge merkezinde çalışmaya devam edin.
Ayrıca bkz.
Microsoft Azure için kullanılabilen ek Spring Boot Starter'lar hakkında daha fazla bilgi için bkz . Spring Cloud Azure nedir?
Spring Boot uygulamalarınızdan çağırabileceğiniz ek Azure depolama API'leri hakkında daha fazla bilgi için aşağıdaki makalelere bakın: