Hızlı Başlangıç: Ruby için Azure Blob Depolama istemci kitaplığı
Microsoft Azure Blob Depolama'da bir kapsayıcıda blob oluşturmak, indirmek ve listelemek için Ruby kullanmayı öğrenin.
Önkoşullar
Azure Depolama'ya erişmek için bir Azure aboneliğine ihtiyacınız vardır. Henüz aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Azure Depolama'ya tüm erişim bir depolama hesabı üzerinden gerçekleştirilir. Bu hızlı başlangıçta Azure portal, Azure PowerShell veya Azure CLI kullanarak bir depolama hesabı oluşturun. Depolama hesabı oluşturma konusunda yardım için bkz. Depolama hesabı oluşturma.
Aşağıdaki ek önkoşulların yüklü olduğundan emin olun:
RubyGem paketini kullanarak Ruby için Azure Depolama istemci kitaplığı:
gem install azure-storage-blob
Örnek uygulamayı indirin:
Bu hızlı başlangıçta kullanılan örnek uygulama, temel bir Ruby uygulamasıdır.
Uygulamanın bir kopyasını geliştirme ortamınıza indirmek için Git'i kullanın. Bu komut depoyu yerel makinenize kopyalar:
git clone https://github.com/Azure-Samples/storage-blobs-ruby-quickstart.git
storage-blobs-ruby-quickstart klasörüne gidin ve kod düzenleyicinizde example.rb dosyasını açın.
Azure portalından kimlik bilgilerinizi kopyalama
Örnek uygulamanın, depolama hesabınıza erişim yetkisi vermesi gerekir. Uygulamaya depolama hesabı kimlik bilgilerinizi bağlantı dizesi biçiminde sağlayın. Depolama hesabınızın kimlik bilgilerini görüntülemek için:
Azure portal depolama hesabınıza gidin.
Depolama hesabına genel bakışın Ayarlar bölümünde Erişim anahtarları'nı seçerek hesap erişim anahtarlarınızı ve bağlantı dizenizi görüntüleyin.
Yetkilendirme için gerekecek olan depolama hesabınızın adını not edin.
anahtar1 altında Anahtar değerini bulun ve kopyala'yı seçerek hesap anahtarını kopyalayın.
Depolama bağlantı dizelerinizi yapılandırma
Uygulamanız için bir BlobService örneği oluşturmak için depolama hesabı adınızı ve hesap anahtarınızı sağlayın.
example.rb dosyasındaki aşağıdaki kod yeni bir BlobService nesnesinin örneğini oluşturur. accountname ve accountkey değerlerini, hesap adınız ve anahtarınızla değiştirin.
# Create a BlobService object
account_name = "accountname"
account_key = "accountkey"
blob_client = Azure::Storage::Blob::BlobService.create(
storage_account_name: account_name,
storage_access_key: account_key
)
Örneği çalıştırma
Örnek Blob Depolama'da bir kapsayıcı oluşturur, kapsayıcıda yeni bir blob oluşturur, kapsayıcıdaki blobları listeler ve blobu yerel bir dosyaya indirir.
Örnek uygulamayı çalıştırın. Uygulamayı çalıştırma çıktısının bir örneği aşağıda verilmiştir:
C:\azure-samples\storage-blobs-ruby-quickstart> ruby example.rb
Creating a container: quickstartblobs18cd9ec0-f4ac-4688-a979-75c31a70503e
Creating blob: QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
List blobs in the container following continuation token
Blob name: QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
Downloading blob to C:/Users/azureuser/Documents/QuickStart_6f8f29a8-879a-41fb-9db2-0b8595180728.txt
Paused, press the Enter key to delete resources created by the sample and exit the application
Devam etmek için Enter tuşuna bastığınızda örnek program depolama kapsayıcısını ve yerel dosyayı siler. Devam etmeden önce, indirilen dosya için Belgeler klasörünüzü denetleyin.
Depolama hesabınızdaki dosyaları görüntülemek için Azure Depolama Gezgini de kullanabilirsiniz. Azure Depolama Gezgini, depolama hesabı bilgilerinize erişmenize olanak tanıyan ücretsiz ve platformlar arası bir araçtır.
Dosyaları doğruladıktan sonra Test dosyalarını silmek ve tanıtımı sonlandırmak için Enter tuşuna basın. Koda bakmak için example.rb dosyasını açın.
Örnek kodu anlama
Ardından, nasıl çalıştığını anlayabilmen için örnek kodu inceleyeceğiz.
Depolama nesneleriyle ilgili başvuruları alma
Yapılacak ilk şey, Blob Depolama'ya erişmek ve blob depolamayı yönetmek için kullanılan nesnelerin örneklerini oluşturmaktır. Bu nesneler birbirlerinin üzerinde oluşturulur. Her bir listedeki bir sonraki nesne tarafından kullanılır.
- Azure depolama örneğini oluşturmak BlobService nesne bağlantı kimlik bilgilerini ayarlayın.
- Eriştiğiniz kapsayıcıyı temsil eden Container nesnesini oluşturun. Kapsayıcılar, tıpkı bilgisayarınızdaki dosyaları düzenlemek için klasörleri kullandığınız gibi blobları düzenlemek için kullanılır.
Kapsayıcı nesnesine sahip olduktan sonra ilgilendiğiniz belirli bir bloba işaret eden bir Blok blobu nesnesi oluşturabilirsiniz. Blobları oluşturmak, indirmek ve kopyalamak için Block nesnesini kullanın.
Önemli
Kapsayıcı adlarının küçük harfle yazılması gerekir. Kapsayıcı ve blob adları hakkında daha fazla bilgi için bkz. Kapsayıcıları, Blobları ve Meta Verileri Adlandırma ve Buna Başvurma.
Aşağıdaki örnek kod:
- Yeni bir kapsayıcı oluşturur
- Blobların genel olması için kapsayıcı üzerindeki izinleri ayarlar. Kapsayıcıya, benzersiz bir kimliğin eklendiği quickstartblobs adı verilir.
# Create a container
container_name = "quickstartblobs" + SecureRandom.uuid
puts "\nCreating a container: " + container_name
container = blob_client.create_container(container_name)
# Set the permission so the blobs are public
blob_client.set_container_acl(container_name, "container")
Kapsayıcıda blob oluşturma
Blob Depolama blok bloblarını, ekleme bloblarını ve sayfa bloblarını destekler. Blob oluşturmak için blob verilerini geçiren create_block_blob yöntemini çağırın.
Aşağıdaki örnek, daha önce oluşturulan kapsayıcıda benzersiz bir kimliğe ve .txt dosya uzantısına sahip QuickStart_ adlı bir blob oluşturur.
# Create a new block blob containing 'Hello, World!'
blob_name = "QuickStart_" + SecureRandom.uuid + ".txt"
blob_data = "Hello, World!"
puts "\nCreating blob: " + blob_name
blob_client.create_block_blob(container.name, blob_name, blob_data)
Blok blobları 4,7 TB kadar büyük olabilir ve elektronik tablolardan büyük video dosyalarına kadar her şey olabilir. Sayfa blobları öncelikli olarak IaaS sanal makinelerini destekleyen VHD dosyaları için kullanılır. Ekleme blobları genellikle günlüğe kaydetme için kullanılır. Örneğin, bir dosyaya yazıp daha fazla bilgi eklemeye devam etmek istediğinizde.
Kapsayıcıdaki blobları listeleme
list_blobs metodunu kullanarak kapsayıcıdaki dosya listesini alın. Aşağıdaki kod blobların listesini alır ve adlarını görüntüler.
# List the blobs in the container
puts "\nList blobs in the container following continuation token"
nextMarker = nil
loop do
blobs = blob_client.list_blobs(container_name, { marker: nextMarker })
blobs.each do |blob|
puts "\tBlob name: #{blob.name}"
end
nextMarker = blobs.continuation_token
break unless nextMarker && !nextMarker.empty?
end
Blobu indirme
get_blob yöntemini kullanarak yerel diskinize bir blob indirin. Aşağıdaki kod, önceki bölümde oluşturulan blobu indirir.
# Download the blob
# Set the path to the local folder for downloading
if(is_windows)
local_path = File.expand_path("~/Documents")
else
local_path = File.expand_path("~/")
end
# Create the full path to the downloaded file
full_path_to_file = File.join(local_path, blob_name)
puts "\nDownloading blob to " + full_path_to_file
blob, content = blob_client.get_blob(container_name, blob_name)
File.open(full_path_to_file,"wb") {|f| f.write(content)}
Kaynakları temizleme
Bir blob artık gerekli değilse kaldırmak için delete_blob kullanın. delete_container yöntemini kullanarak kapsayıcının tamamını silin. Kapsayıcının silinmesi, kapsayıcıda depolanan tüm blobları da siler.
# Clean up resources, including the container and the downloaded file
blob_client.delete_container(container_name)
File.delete(full_path_to_file)
Bloblarla Ruby uygulamaları geliştirme kaynakları
Ruby geliştirme için şu ek kaynaklara bakın:
- GitHub’da Azure Depolama için Ruby istemci kitaplığı kaynak kodunu görüntüleyin ve indirin.
- Ruby istemci kitaplığı kullanılarak yazılmış Azure örneklerini keşfedin.
- Örnek: Ruby'de Azure Depolama ile Çalışmaya Başlama
Sonraki adımlar
Bu hızlı başlangıçta Ruby kullanarak dosyaları Azure Blob Depolama ile yerel disk arasında aktarmayı öğrendiniz. Blob Depolama ile çalışma hakkında daha fazla bilgi edinmek için Depolama hesabına genel bakış bölümüne geçin.
Depolama Gezgini ve Bloblar hakkında daha fazla bilgi için bkz. Depolama Gezgini ile Azure Blob Depolama kaynaklarını yönetme.