Hızlı Başlangıç: Java v12 SDK ile blobları yönetme
Bu hızlı başlangıçta, Java kullanarak blobları yönetmeyi öğrenirsiniz. Bloblar; görüntüler, belgeler, akış medyası ve arşiv verileri gibi büyük miktarlarda metin veya ikili veri tutabilirsiniz. Blobları karşıya yükecek, indirecek ve listeledikten sonra kapsayıcıları oluştur ve silebilirsiniz.
Ek kaynaklar:
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir hesap oluşturun.
- Azure Depolama hesabı. Depolama hesabı oluşturun.
- Java Development Kit (JDK) sürüm 8 veya üzeri.
- Apache Maven.
Ayarlama
Bu bölüm, Java için v12 istemci kitaplığını kullanarak Azure Blob Depolama proje hazırlamada size yol göstermektedir.
Proje oluşturma
blob-quickstart-v12 adlı bir Java uygulaması oluşturun.
Konsol penceresinde (cmd, PowerShell veya Bash gibi) Maven kullanarak blob-quickstart-v12 adıyla yeni bir konsol uygulaması oluşturun. "Merhaba dünya!" oluşturmak için aşağıdaki mvn komutunu yazın Java projesi.
mvn archetype:generate ` --define interactiveMode=n ` --define groupId=com.blobs.quickstart ` --define artifactId=blob-quickstart-v12 ` --define archetypeArtifactId=maven-archetype-quickstart ` --define archetypeVersion=1.4Projeyi oluşturmanın çıktısı aşağıdakine benzer şekilde çalışmalı:
[INFO] Scanning for projects... [INFO] [INFO] ------------------< org.apache.maven:standalone-pom >------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: packageInPathFormat, Value: com/blobs/quickstart [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart-v12 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.056 s [INFO] Finished at: 2019-10-23T11:09:21-07:00 [INFO] ------------------------------------------------------------------------ ```Switch to the newly created blob-quickstart-v12 folder.
cd blob-quickstart-v12blob-quickstart-v12 dizininde data adlı başka bir dizin oluşturun. Blob veri dosyalarının oluşturulacak ve depolandığı yer burasıdır.
mkdir data
Paketi yükleme
Metin pom.xml dosyasını açın. Aşağıdaki bağımlılık öğesini bağımlılıklar grubuna ekleyin.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.13.0</version>
</dependency>
Uygulama çerçevesini ayarlama
Proje dizininden:
- /src/main/java/com/blobs/quickstart dizinine gidin
- App.java dosyasını düzenleyicide açın
- deyimini
System.out.println("Hello world!");silme - Yönergeler
importekleme
Kod şu şekildedir:
package com.blobs.quickstart;
/**
* Azure blob storage v12 SDK quickstart
*/
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;
public class App
{
public static void main( String[] args ) throws IOException
{
}
}
Azure portalından kimlik bilgilerinizi kopyalama
örnek uygulama Azure Depolama istek yaptığında yetkilendirilmiş olması gerekir. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Depolama hesabı kimlik bilgilerinizi görüntülemek için aşağıdaki adımları izleyin:
Azure Portal’ında oturum açın.
Depolama hesabınızı bulun.
Depolama hesabı menü bölmesinde, güvenlik + ağ altında, erişim anahtarları' nı seçin. Burada, her anahtar için hesap erişim anahtarlarını ve tüm bağlantı dizesini görüntüleyebilirsiniz.

Erişim tuşları bölmesinde, anahtarları göster' i seçin.
KEY1 bölümünde bağlantı dizesi değerini bulun. Bağlantı dizesini kopyalamak için Panoya Kopyala simgesini seçin. Bir sonraki bölümde bağlantı dizesi değerini bir ortam değişkenine eklersiniz.

Depolama bağlantı dizelerinizi yapılandırma
Bağlantı dizesini kopyaladıktan sonra, uygulamayı çalıştıran yerel makinede yeni bir ortam değişkenine yazın. Ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminizin yönergelerini izleyin. <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
ortam değişkenini Windows ekledikten sonra, komut penceresinin yeni bir örneğini başlatmanız gerekir.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Programları yeniden Başlat
Ortam değişkenini ekledikten sonra, ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatın. Örneğin, devam etmeden önce geliştirme ortamınızı veya düzenleyiciyi yeniden başlatın.
Nesne modeli
Azure Blob Depolama, çok büyük miktarlarda yapılandırılmamış verilerin depolanması için iyileştirilmiştir. Yapılandırılmamış veriler, metin veya ikili veriler gibi belirli bir veri modeline veya tanıma bağlı olmayan verilerdir. Blob depolama üç tür kaynak sunar:
- Depolama hesabı
- Depolama hesabı içinde bir kapsayıcı
- Kapsayıcıda bir blob
Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Bu kaynaklarla etkileşim kurmak için aşağıdaki Java sınıflarını kullanın:
- BlobServiceClient:
BlobServiceClientsınıfı, Azure kaynak ve blob Depolama işlemeye olanak sağlar. Depolama hesabı, Blob hizmeti için en üst düzey ad alanını sağlar. - BlobServiceClientBuilder:sınıfı, nesnelerin yapılandırmasına ve örneğini oluşturmaya yardımcı olmak için
BlobServiceClientBuilderakıcı bir oluşturucu API'siBlobServiceClientsağlar. - BlobContainerClient:
BlobContainerClientsınıfı, Azure kapsayıcılarını ve Depolama işlemeye olanak sağlar. - BlobClient:
BlobClientsınıfı, Azure bloblarını ve blobları Depolama sağlar. - BlobItem:sınıfı
BlobItemlistBlobs çağrısından döndürülen tek tek blobları temsil eder.
Kod örnekleri
Bu örnek kod parçacıkları, Java için Azure Blob Depolama istemci kitaplığıyla Depolama nasıl gerçekleştirebilirsiniz:
- Bağlantı dizesini alma
- Kapsayıcı oluşturma
- Upload kapsayıcıya blobları depolama
- Kapsayıcıdaki blobları listeleme
- Blob’ları indirme
- Kapsayıcı silme
Bağlantı dizesini alma
Aşağıdaki kod, Depolama bağlantı dizenizi yapılandırma bölümünde oluşturulan ortam değişkenini kullanarak depolama hesabının bağlantı dizesini alır.
Yöntemin içine şu kodu Main ekleyin:
System.out.println("Azure Blob Storage v12 - Java quickstart sample\n");
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable
// is created after the application is launched in a console or with
// Visual Studio, the shell or application needs to be closed and reloaded
// to take the environment variable into account.
String connectStr = System.getenv("AZURE_STORAGE_CONNECTION_STRING");
Kapsayıcı oluşturma
Yeni kapsayıcı için bir ad seçin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kapsayıcı adına bir UUID değeri ekler.
Önemli
Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcıları ve blobları adlandırma hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.
Ardından, BlobContainerClient sınıfının bir örneğini oluşturun ve ardından depolama hesabınız içinde kapsayıcıyı oluşturmak için create yöntemini çağırın.
Bu kodu yönteminin sonuna Main ekleyin:
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
//Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();
// Create the container and return a container client object
BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);
Upload blobları kapsayıcıya depolama
Aşağıdaki kod parçacığı:
- Yerel veri dizininde bir metin dosyası oluşturur.
- Kapsayıcı oluşturma bölümünden kapsayıcıda getBlobClient yöntemini çağırarak bir BlobClient nesnesine başvuru alır.
- uploadFromFile yöntemini çağırarak yerel metin dosyasını bloba yükler. Bu yöntem, henüz yoksa blobu oluşturur, ancak varsa üzerine yazmaz.
Bu kodu yönteminin sonuna Main ekleyin:
// Create a local file in the ./data/ directory for uploading and downloading
String localPath = "./data/";
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";
File localFile = new File(localPath + fileName);
// Write text to the file
FileWriter writer = new FileWriter(localPath + fileName, true);
writer.write("Hello, World!");
writer.close();
// Get a reference to a blob
BlobClient blobClient = containerClient.getBlobClient(fileName);
System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());
// Upload the blob
blobClient.uploadFromFile(localPath + fileName);
Kapsayıcıdaki blobları listeleme
listBlobs yöntemini çağırarak kapsayıcıda blobları listele. Bu durumda, kapsayıcıya yalnızca bir blob eklenmiştir, bu nedenle listeleme işlemi yalnızca bir blob döndürür.
Bu kodu yönteminin sonuna Main ekleyin:
System.out.println("\nListing blobs...");
// List the blob(s) in the container.
for (BlobItem blobItem : containerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
Blob’ları indirme
downloadToFile yöntemini çağırarak önceden oluşturulmuş blobu indirin. Örnek kod, yerel dosya sisteminde her iki dosyayı da görmek için dosya adına "DOWNLOAD" soneki ekler.
Bu kodu yönteminin sonuna Main ekleyin:
// Download the blob to a local file
// Append the string "DOWNLOAD" before the .txt extension so that you can see both files.
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");
File downloadedFile = new File(localPath + downloadFileName);
System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);
blobClient.downloadToFile(localPath + downloadFileName);
Kapsayıcı silme
Aşağıdaki kod, delete yöntemini kullanarak kapsayıcının tamamını kaldırarak uygulamanın oluşturduğu kaynakları temizler. Ayrıca uygulama tarafından oluşturulan yerel dosyaları da siler.
Uygulama blob, kapsayıcı ve yerel dosyaları smeden önce çağırarak System.console().readLine() kullanıcı girişi için duraklatılır. Bu, kaynakların silinmeden önce doğru şekilde oluşturulmuş olduğunu doğrulamak için iyi bir fırsattır.
Bu kodu yönteminin sonuna Main ekleyin:
// Clean up
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();
System.out.println("Deleting blob container...");
containerClient.delete();
System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();
System.out.println("Done");
Kodu çalıştırma
Bu uygulama, yerel klasörünüzde bir test dosyası oluşturur ve blob depolamaya yükler. Örnek daha sonra kapsayıcıda blobları listeler ve eski ve yeni dosyaları karşılaştırarak dosyayı yeni bir adla indirir.
Aşağıdaki komutu kullanarak pom.xml dosyasını içeren dizine gidin ve projeyi mvn derlenin.
mvn compile
Ardından, paketini oluşturun.
mvn package
mvnUygulamayı yürütmek için aşağıdaki komutu çalıştırın.
mvn exec:java -Dexec.mainClass="com.blobs.quickstart.App" -Dexec.cleanupDaemonThreads=false
Uygulamanın çıktısı aşağıdaki örneğe benzer:
Azure Blob Storage v12 - Java quickstart sample
Uploading to Blob storage as blob:
https://mystorageacct.blob.core.windows.net/quickstartblobsf9aa68a5-260e-47e6-bea2-2dcfcfa1fd9a/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Listing blobs...
quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Downloading blob to
./data/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65DOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Temizleme işlemine başlamadan önce, iki dosya için veri klasörünüzü denetleyin. Dosyaları açarak aynı olduklarını görebilirsiniz.
Dosyaları doğruladıktan sonra, test dosyalarını silmek ve tanıtımı sona almak için ENTER tuşuna basın.
Sonraki adımlar
Bu hızlı başlangıçta, Java kullanarak Blobları karşıya yükleme, indirme ve listeleme hakkında daha fazla öğrendiniz.
BLOB depolama örnek uygulamalarını görmek için devam edin:
- Daha fazla bilgi için bkz. Java Için Azure SDK.
- Öğreticiler, örnekler, hızlı başlangıçler ve diğer belgeler için, Java bulut geliştiricileri Için Azure' u ziyaret edin.