Karşıya yükleme, indirme ve Java v7 için istemci kitaplığını kullanarak blobları ListeleHow to upload, download, and list blobs using the client library for Java v7

Bu nasıl yapılır kılavuzunda Java v7 karşıya yükleme, indirme ve Azure Blob depolamadaki bir kapsayıcıda blok bloblarını listesi için istemci kitaplığını kullanmayı öğrenin.In this how-to guide, you learn how to use the client library for Java v7 to upload, download, and list block blobs in a container in Azure Blob storage.

İpucu

Java için Azure depolama istemci Kitaplığı'nın en son sürümü v10 ' dir.The latest version of the Azure Storage client library for Java is v10. Microsoft, mümkün olduğunda istemci Kitaplığı'nın en son sürümünü kullanmanızı önerir.Microsoft recommends that you use the latest version of the client library when possible. V10 kullanmaya başlamak için bkz: hızlı başlangıç: Karşıya yükleme, indirme ve Java için depolama SDK'sı V10 kullanarak blobları listeleme.To get started using v10, see Quickstart: Upload, download, and list blobs by using the Java Storage SDK V10.

ÖnkoşullarPrerequisites

Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.If you don't have an Azure subscription, create a free account before you begin.

Ayrıca bir Azure depolama hesabı oluşturun Azure portalında.Also create an Azure storage account in the Azure portal. Hesap oluşturmayla ilgili yardım için bkz. Depolama hesabı oluşturma.For help creating the account, see Create a storage account.

Aşağıdaki önkoşulların karşılandığından emin olun:Make sure you have the following prerequisites:

  • Maven tümleştirmesine sahip bir IDE yükleyin.Install an IDE that has Maven integration.

  • Alernatif olarak, Maven’ı yükleyip komut satırından çalışacak şekilde de yapılandırabilirsiniz.Alternatively, install and configure Maven to work from the command line.

Bu kılavuzda kullanan Eclipse "Eclipse IDE Java geliştiriciler için" yapılandırmaya sahip.This guide uses Eclipse with the "Eclipse IDE for Java Developers" configuration.

Örnek uygulamayı indirin:Download the sample application

Örnek uygulama temel bir konsol uygulamasıdır.The sample application is a basic console application.

Uygulamanın bir kopyasını geliştirme ortamınıza indirmek için Git'i kullanın.Use git to download a copy of the application to your development environment.

git clone https://github.com/Azure-Samples/storage-blobs-java-quickstart.git

Bu komut, depoyu yerel Git klasörünüze kopyalar.This command clones the repository to your local git folder. Projeyi açmak için, Eclipse’ı başlatın ve Karşılama ekranını kapatın.To open the project, launch Eclipse and close the Welcome screen. Dosya’yı ve ardından Dosya Sisteminden Proje Aç’ı seçin.Select File then Open Projects from File System. Proje niteliklerini algıla ve yapılandır seçeneğinin belirlenmiş olduğundan emin olun.Make sure Detect and configure project natures is checked. Dizin’i seçin ve ardından kopyalanan dizini depoladığınız konuma gidin.Select Directory then navigate to where you stored the cloned repository. Kopyalanan deponun içinde blobAzureApp klasörünü seçin.Inside the cloned repository, select the blobAzureApp folder. blobAzureApp projesinin Eclipse projesi olarak göründüğünden emin olun ve ardından Son’u seçin.Make sure the blobAzureApp project appears as an Eclipse project, then select Finish.

Projenin içeri aktarılması tamamlandığında, AzureApp.java’yı açın (src/main/java içinde, blobQuickstart.blobAzureApp konumundadır) ve storageConnectionString dizesindeki accountname ve accountkey öğelerini değiştirin.Once the project finishes importing, open AzureApp.java (located in blobQuickstart.blobAzureApp inside of src/main/java), and replace the accountname and accountkey inside of the storageConnectionString string. Sonra, uygulamayı çalıştırın.Then run the application. Aşağıdaki bölümlerde bu görevleri tamamlamak için gereken özel yönergeler açıklanmıştır.Specific instructions for completing these tasks are described in the following sections.

Azure portalından kimlik bilgilerinizi kopyalamaCopy your credentials from the Azure portal

Örnek uygulamanın, depolama hesabınıza erişim için kimlik doğrulaması gerçekleştirmesi gerekir.The sample application needs to authenticate access to your storage account. Kimlik doğrulaması gerçekleştirmek için, depolama hesabınızın kimlik bilgilerini uygulamaya bir bağlantı dizesi olarak ekleyin.To authenticate, add your storage account credentials to the application as a connection string. Bu adımları izleyerek depolama hesabı kimlik bilgilerinizi görüntüleyin:View your storage account credentials by following these steps:

  1. Azure portalına gidin.Navigate to the Azure portal.

  2. Depolama hesabınızı bulun.Locate your storage account.

  3. Depolama hesabına genel bakışın Ayarlar bölümünde Erişim anahtarları’nı seçin.In the Settings section of the storage account overview, select Access keys. Burada, hesap erişim anahtarlarınızı ve her anahtar için tam bağlantı dizesini görüntüleyebilirsiniz.Here, you can view your account access keys and the complete connection string for each key.

  4. key1 bölümünde Bağlantı dizesi değerini bulun ve Kopyala düğmesini seçerek bağlantı dizesini kopyalayın.Find the Connection string value under key1, and select the Copy button to copy the connection string. Sonraki adımda bir ortam değişkenine bağlantı dizesini ekleyeceksiniz.You will add the connection string value to an environment variable in the next step.

    Azure portalından bağlantı dizesinin kopyalanmasını gösteren ekran görüntüsü

Depolama bağlantı dizelerinizi yapılandırmaConfigure your storage connection string

Uygulamada, depolama hesabınız için bağlantı dizesi sağlamanız gerekir.In the application, you must provide the connection string for your storage account. AzureApp.Java dosyasını açın.Open the AzureApp.Java file. storageConnectionString değişkenini bulun ve önceki bölümde kopyaladığınız bağlantı dizesi değerini yapıştırın.Find the storageConnectionString variable and paste the connection string value that you copied in the previous section. storageConnectionString değişkeni, aşağıdaki kod örneğine benzer olmalıdır:Your storageConnectionString variable should look similar to the following code example:

public static final String storageConnectionString =
"DefaultEndpointsProtocol=https;" +
"AccountName=<account-name>;" +
"AccountKey=<account-key>";

Örneği çalıştırmaRun the sample

Bu örnek uygulama, varsayılan dizininizde (Windows kullanıcıları için C:\Users<kullanıcı>\AppData\Local\Temp) bir test dosyası oluşturur, bunu Blob depolamaya yükler, blobları kapsayıcıda listeler ve ardından eski ve yeni dosyaları karşılaştırabilmeniz için dosyayı yeni bir adla indirir.This sample application creates a test file in your default directory (C:\Users<user>\AppData\Local\Temp, for Windows users), uploads it to Blob storage, lists the blobs in the container, then downloads the file with a new name so you can compare the old and new files.

Maven’i komut satırında kullanarak örneği çalıştırın.Run the sample using Maven at the command line. Bir kabuk açın ve kopyalanan dizininiz içindeki blobAzureApp öğesine gidin.Open a shell and navigate to blobAzureApp inside of your cloned directory. Sonra mvn compile exec:java komutunu girin.Then enter mvn compile exec:java.

Aşağıdaki örnekte, uygulamayı Windows’da çalıştırmak istemeniz durumunda karşılaşacağınız çıkış gösterilir.The following example shows the output if you were to run the application on Windows.

Azure Blob storage quick start sample
Creating container: quickstartcontainer
Creating a sample file at: C:\Users\<user>\AppData\Local\Temp\sampleFile514658495642546986.txt
Uploading the sample file 
URI of blob is: https://myexamplesacct.blob.core.windows.net/quickstartcontainer/sampleFile514658495642546986.txt
The program has completed successfully.
Press the 'Enter' key while in the console to delete the sample files, example container, and exit the application.

Deleting the container
Deleting the source, and downloaded files

Devam etmeden önce, varsayılan dizininizi (Windows kullanıcıları için C:\Users<kullanıcı>\AppData\Local\Temp) örnek dosya için kontrol edin.Before you continue, check your default directory (C:\Users<user>\AppData\Local\Temp, for Windows users) for the sample file. Blob depolamadaki dosyanın içeriğini görüntülemek için, blobun URL'sini konsol penceresinden kopyalayın ve tarayıcıya yapıştırın.Copy the URL for the blob out of the console window and paste it into a browser to view the contents of the file in Blob storage. Dizininizdeki örnek dosyayı Blob depolamada saklanan içerikle karşılaştırırsanız, bunların aynı olduğunu görürsünüz.If you compare the sample file in your directory with the contents stored in Blob storage, you will see that they are the same.

Not

Ayrıca, Blob depolamadaki dosyaları görüntülemek için, Azure Depolama Gezgini gibi bir araç da kullanabilirsiniz.You can also use a tool such as the Azure Storage Explorer to view the files in Blob storage. Azure Depolama Gezgini, depolama hesabı bilgilerinize erişmenize olanak tanıyan ücretsiz ve platformlar arası bir araçtır.Azure Storage Explorer is a free cross-platform tool that allows you to access your storage account information.

Dosyaları doğruladıktan sonra, tanıtımı tamamlamak ve test dosyalarını silmek için Enter tuşuna basın.After you've verified the files, press the Enter key to finish the demo and delete the test files. Artık örnek dosyanın ne yaptığını gördüğünüze göre, koda göz atmak için AzureApp.java dosyasını açabilirsiniz.Now that you know what the sample does, open the AzureApp.java file to look at the code.

Örnek kodu anlamaUnderstand the sample code

Sonraki aşamada, nasıl çalıştığını anlayabilmeniz için örnek kodu inceleyeceğiz.Next, we walk through the sample code so that you can understand how it works.

Depolama nesneleriyle ilgili başvuruları almaGet references to the storage objects

İlk önce, Blob depolamaya erişmek ve Blob depolamayı yönetmek için kullanılan nesnelere başvuru oluşturmaktır.The first thing to do is create the references to the objects used to access and manage Blob storage. Bu nesneler birbirleri üzerinde derlenir; her dosya, listede yanında yer alan dosya tarafından kullanılır.These objects build on each other -- each is used by the next one in the list.

  • CloudStorageAccount nesnesinin depolama hesabına işaret eden bir örneğini oluşturun.Create an instance of the CloudStorageAccount object pointing to the storage account.

    CloudStorageAccount nesnesi, depolama hesabınızın bir gösterimidir ve programlamayla depolama hesabı özelliklerini ayarlayabilmenizi ve bu özelliklere erişebilmenizi sağlar.The CloudStorageAccount object is a representation of your storage account and it allows you to set and access storage account properties programmatically. CloudStorageAccount nesnesini kullanarak, blob hizmetine erişmek için kullanılan CloudBlobClient’in bir örneğini oluşturabilirsiniz.Using the CloudStorageAccount object you can create an instance of the CloudBlobClient, which is necessary to access the blob service.

  • CloudBlobClient nesnesinin, depolama hesabınızdaki Blob hizmetine işaret eden bir örneğini oluşturun.Create an instance of the CloudBlobClient object, which points to the Blob service in your storage account.

    CloudBlobClient, blob hizmetine erişim noktası sunarak programlamayla Blob depolama özelliklerini ayarlayabilmenizi ve bu özelliklere erişebilmenizi sağlar.The CloudBlobClient provides you a point of access to the blob service, allowing you to set and access Blob storage properties programmatically. CloudBlobClient nesnesini kullanarak, kapsayıcı oluşturmak için kullanılan CloudBlobContainerıin bir örneğini oluşturabilirsiniz.Using the CloudBlobClient you can create an instance of the CloudBlobContainer object, which is necessary to create containers.

  • CloudBlobContainer nesnesinin, eriştiğiniz kapsayıcıyı temsil eden bir örneğini oluşturun.Create an instance of the CloudBlobContainer object, which represents the container you are accessing. Tıpkı bilgisayarınızdaki dosyaları düzenlemek için klasörleri kullandığınız gibi blobları düzenlemek için de kapsayıcıları kullanın.Use containers to organize your blobs like you use folders on your computer to organize your files.

    CloudBlobContainer nesneniz olduktan sonra, ilgilendiğiniz belirli bir bloba işaret eden bir CloudBlockBlob nesnesi örneği oluşturabilir ve karşıya yükleme, indirme, kopyalama işlemleri ve başka işlemler yapabilirsiniz.Once you have the CloudBlobContainer, you can create an instance of the CloudBlockBlob object that points to the specific blob you’re interested in, and perform an upload, download, copy, or other operation.

Önemli

Kapsayıcı adlarının küçük harfle yazılması gerekir.Container names must be lowercase. Kapsayıcılar hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Bunlara Başvurma.For more information about containers, see Naming and Referencing Containers, Blobs, and Metadata.

Bir kapsayıcı oluşturmaCreate a container

Bu bölümde, nesnelerin örneğini oluşturuyor, yeni kapsayıcı oluşturuyor ve ardından kapsayıcıdaki izinleri bloblar herkese açık olacak ve bloblara yalnızca bir URL ile erişilebilecek şekilde ayarlıyorsunuz.In this section, you create an instance of the objects, create a new container, and then set permissions on the container so the blobs are public and can be accessed with just a URL. Bu kapsayıcının adı quickstartcontainer'dır.The container is called quickstartcontainer.

Örnek her çalıştırıldığında yeni bir kapsayıcı oluşturmak istediğimizden, bu örnekte CreateIfNotExists komutu kullanılır.This example uses CreateIfNotExists because we want to create a new container each time the sample is run. Uygulamanın tamamında aynı kapsayıcıyı kullandığınız bir üretim ortamında, CreateIfNotExists’i yalnızca bir kez çağırmanız önerilir.In a production environment, where you use the same container throughout an application, it's better practice to only call CreateIfNotExists once. Alternatif olarak, kapsayıcıyı önceden oluşturabilirsiniz. Böylece kapsayıcıyı kodda oluşturmanıza gerek kalmaz.Alternatively, you can create the container ahead of time so you don't need to create it in the code.

// Parse the connection string and create a blob client to interact with Blob storage
storageAccount = CloudStorageAccount.parse(storageConnectionString);
blobClient = storageAccount.createCloudBlobClient();
container = blobClient.getContainerReference("quickstartcontainer");

// Create the container if it does not exist with public access.
System.out.println("Creating container: " + container.getName());
container.createIfNotExists(BlobContainerPublicAccessType.CONTAINER, new BlobRequestOptions(), new OperationContext());

Blobları kapsayıcıya yüklemeUpload blobs to the container

Bir dosyayı bir blok blobuna yüklemek için hedef kapsayıcıda bloba bir başvuru alın.To upload a file to a block blob, get a reference to the blob in the target container. Blob başvurusunu aldıktan sonra, CloudBlockBlob.Upload kullanarak verileri karşıya yükleyebilirsiniz.Once you have the blob reference, you can upload data to it by using CloudBlockBlob.Upload. Bu işlemle, daha önce oluşturulmadıysa bir blob oluşturulur, blob zaten varsa blobun üzerine yazılır.This operation creates the blob if it doesn't already exist, or overwrites the blob if it already exists.

Örnek kod, karşıya yükleme ve indirme için kullanılacak yerel bir dosya oluşturur, karşıya yüklenecek dosyayı kaynak olarak ve blob adını blob olarak depolar.The sample code creates a local file to be used for the upload and download, storing the file to be uploaded as source and the name of the blob in blob. Aşağıdaki örnek, dosyayı quickstartcontainer adlı kapsayıcınıza yükler.The following example uploads the file to your container called quickstartcontainer.

//Creating a sample file
sourceFile = File.createTempFile("sampleFile", ".txt");
System.out.println("Creating a sample file at: " + sourceFile.toString());
Writer output = new BufferedWriter(new FileWriter(sourceFile));
output.write("Hello Azure!");
output.close();

//Getting a blob reference
CloudBlockBlob blob = container.getBlockBlobReference(sourceFile.getName());

//Creating blob and uploading file to it
System.out.println("Uploading the sample file ");
blob.uploadFromFile(sourceFile.getAbsolutePath());

Blob depolama için kullanabileceğiniz upload, uploadBlock, uploadFullBlob, uploadStandardBlobTier ve uploadText’in de dahil olduğu birkaç upload yöntemi vardır.There are several upload methods including upload, uploadBlock, uploadFullBlob, uploadStandardBlobTier, and uploadText which you can use with Blob storage. Örneğin, dizelerinizi Upload yöntemi yerine UploadText yöntemiyle karşıya yükleyebilirsiniz.For example, if you have a string, you can use the UploadText method rather than the Upload method.

Blok blobları herhangi bir metin veya ikili dosya türünde olabilir.Block blobs can be any type of text or binary file. Sayfa blobları öncelikli olarak IaaS VM'lerini destekleyen VHD dosyalarında kullanılır.Page blobs are primarily used for the VHD files that back IaaS VMs. Ekleme bloblarını, bir dosyaya yazıp daha sonradan daha fazla bilgi eklemek istediğiniz durumlarda günlüğe kaydetmek için kullanın.Use append blobs for logging, such as when you want to write to a file and then keep adding more information. Blob depolamada depolanan nesnelerin çoğu blok blobudur.Most objects stored in Blob storage are block blobs.

Blob’ları bir kapsayıcıda listelemeList the blobs in a container

CloudBlobContainer.ListBlobs kullanarak kapsayıcıdaki dosyaların listesini alabilirsiniz.You can get a list of files in the container using CloudBlobContainer.ListBlobs. Aşağıdaki kod blob listesini alır, ardından bu bloblarda döngü yapar ve bulunan blobların URI değerlerini gösterir.The following code retrieves the list of blobs, then loops through them, showing the URIs of the blobs found. Dosyayı görüntülemek için URI değerini komut penceresinden kopyalayıp tarayıcıya yapıştırabilirsiniz.You can copy the URI from the command window and paste it into a browser to view the file.

//Listing contents of container
for (ListBlobItem blobItem : container.listBlobs()) {
    System.out.println("URI of blob is: " + blobItem.getUri());
}

Blob’ları indirmeDownload blobs

CloudBlob.DownloadToFile kullanarak blobları yerel diskinize indirin.Download blobs to your local disk using CloudBlob.DownloadToFile.

Aşağıdaki kod önceki bir bölümde karşıya yüklenmiş olan blobu indirir; yerel diskinizde her iki dosyayı da görebilmeniz için indirilen blobun adına "_DOWNLOADED" son ekini koyar.The following code downloads the blob uploaded in a previous section, adding a suffix of "_DOWNLOADED" to the blob name so you can see both files on local disk.

// Download blob. In most cases, you would have to retrieve the reference
// to cloudBlockBlob here. However, we created that reference earlier, and 
// haven't changed the blob we're interested in, so we can reuse it. 
// Here we are creating a new file to download to. Alternatively you can also pass in the path as a string into downloadToFile method: blob.downloadToFile("/path/to/new/file").
downloadedFile = new File(sourceFile.getParentFile(), "downloadedFile.txt");
blob.downloadToFile(downloadedFile.getAbsolutePath());

Kaynakları temizlemeClean up resources

Karşıya yüklediğiniz bloblara artık ihtiyacınız yoksa kullanarak kapsayıcının tamamını silebilirsiniz Cloudblobcontainer.deleteıfexists.If you no longer need the blobs that you have uploaded, you can delete the entire container using CloudBlobContainer.DeleteIfExists. Bu yöntem, kapsayıcıdaki dosyaları da siler.This method also deletes the files in the container.

try {
if(container != null)
    container.deleteIfExists();
} catch (StorageException ex) {
System.out.println(String.format("Service error. Http code: %d and error code: %s", ex.getHttpStatusCode(), ex.getErrorCode()));
}

System.out.println("Deleting the source, and downloaded files");

if(downloadedFile != null)
downloadedFile.deleteOnExit();
        
if(sourceFile != null)
sourceFile.deleteOnExit();

Sonraki adımlarNext steps

Bu makalede, dosyaları yerel bir disk ve Java kullanarak Azure Blob Depolama arasında aktarmayı öğrendiniz.In this article, you learned how to transfer files between a local disk and Azure Blob storage using Java. Java ile çalışma hakkında daha fazla bilgi edinmek için GitHub kaynak kod depomuza devam edin.To learn more about working with Java, continue to our GitHub source code repository.