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 öğretici, Spring Boot uygulaması üzerinden bir Azure Blob Depolama hesabındaki kapsayıcı bloblarını nasıl karşıya yükleyip okuyacağınızı gösterir.
Azure Blob Depolama bulut için Microsoft 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 .
- Java Geliştirme Seti (JDK) sürüm 8 veya üzeri.
- Apache Maven, sürüm 3.0 veya üzeri.
- cURL veya benzer bir HTTP yardımcı programını işlevselliği test etmek için kullanın.
- Bir Azure depolama hesabı ve container. Hesabınız yoksa bir depolama hesabı oluşturun.
- Spring Boot uygulaması. Eğer bir tane yoksa, Spring Initializr ile bir Maven projesi oluşturun. Maven Project öğesini seçtiğinizden emin olun ve Dependencies altında Spring Web bağımlılığını ekleyin ve ardından Java sürüm 8 veya üzerini seçin.
Not
Hesabınıza kaynaklara erişim vermek için, yeni oluşturduğunuz Azure Depolama hesabınızda kullanmakta olduğunuz Microsoft Entra hesabına Storage Blob Data Contributor rolünü atayın. Daha fazla bilgi için bkz. Azure portalını 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, testcontainer ile blobları karşıya yükleme, indirme ve listeleme yönergelerini izleyerek adlı bir kapsayıcı oluşturun.
Azure Depolama hesap kapsayıcısından blobları karşıya yükleme ve okuma
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>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Not
Spring Boot 4.0.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü7.2.0olarak ayarladığınızdan emin olun.Spring Boot 3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü6.2.0olarak ayarladığınızdan emin olun.Spring Boot 3.1.x-3.5.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü5.25.0olarak ayarladığınızdan emin olun.Eğer Spring Boot 2.x kullanıyorsanız,
spring-cloud-azure-dependenciessürümünü4.20.0olarak ayarladığınızdan emin olun.Bu Parça Listesi (BOM),
<dependencyManagement>bölümünde 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 ürün reçetesi için kullanılan sürüm hakkında daha fazla bilgi için bkz: Hangi Spring Cloud Azure Sürümünü Kullanmalıyım.
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 Blob 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 bir
BlobControllerJava sınıfı oluşturun. Bu sınıf, Azure Depolama hesabındaki kapsayıcı blobuna 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ığı
DefaultAzureCredentialkullanır.DefaultAzureCredentialbirden ç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 updatediç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/readBlobFileGönderdiğiniz "yeni ileti" metnini görmeniz gerekir.
Azure Spring Apps'e dağıtım yapma
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 Spring Boot uygulamalarını kod değişikliği olmadan Azure 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 dağıtmak için bkz. İlk uygulamanızı Azure Spring Apps'a dağıtma.
Sonraki adımlar
Spring ve Azure hakkında daha fazla bilgi edinmek için spring on Azure belge merkezine geçin.
Spring geliştiricileri için AzureSpring Cloud Azure Depolama Örnekleri
Ayrıca bkz.
Microsoft Azure kullanılabilen ek Spring Boot Başlatıcı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: