次の方法で共有


クイック スタート: Ruby 用 Azure Blob Storage クライアント ライブラリ

Ruby を使用して、Microsoft Azure Blob Storage のコンテナー内に BLOB を作成、ダウンロード、および一覧表示する方法について説明します。

前提条件

Azure Storage にアクセスするには、Azure サブスクリプションが必要です。 まだサブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

Azure Storage へのアクセスはすべて、ストレージ アカウント経由で行われます。 このクイック スタートでは、Azure portal、Azure PowerShell、または Azure CLI を使用して、ストレージ アカウントを作成します。 ストレージ アカウントの作成については、「ストレージ アカウントの作成」を参照してください。

次の追加の前提条件がインストールされていることを確認します。

サンプル アプリケーションのダウンロード

このクイック スタートで使用する サンプル アプリケーション は、基本的な Ruby アプリケーションです。

Git を使用して、アプリケーションのコピーを開発環境にダウンロードします。 このコマンドは、リポジトリをローカル コンピューターに複製します。

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

storage-blobs-ruby-quickstart フォルダーに移動し、コード エディターで example.rb ファイルを開きます。

Azure Portal で資格情報をコピーする

サンプル アプリケーションでは、ストレージ アカウントへのアクセスを承認する必要があります。 接続文字列の形式でストレージ アカウントの資格情報をアプリケーションに提供します。 ストレージ アカウントの資格情報を表示するには:

  1. Azure ポータル にアクセスし、ストレージ アカウントに移動します。

  2. ストレージ アカウントの概要の [設定] セクションで、[アクセス キー] 選択して、アカウント アクセス キーと接続文字列を表示します。

  3. 承認に必要なストレージ アカウントの名前をメモします。

  4. key1の下で キー の値を見つけ、[ コピー] を選択してアカウントキーをコピーします。

    Azure portal からアカウント キーをコピーする方法を示すスクリーンショット

ストレージ接続文字列を構成してください

ストレージ アカウント名とアカウント キーを指定して、アプリケーションの BlobService インスタンスを作成します。

example.rb ファイルの次のコードは、新しい BlobService オブジェクトをインスタンス化します。 アカウント名アカウントキーの値をアカウント名とキーに置き換えます。

# 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
)

サンプルを実行する

このサンプルでは、Blob Storage にコンテナーを作成し、コンテナーに新しい BLOB を作成し、コンテナー内の BLOB を一覧表示して、BLOB をローカル ファイルにダウンロードします。

サンプルを実行します。 アプリケーションの実行からの出力の例を次に示します。

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

Enter キーを押して続行すると、サンプル プログラムによってストレージ コンテナーとローカル ファイルが削除されます。 続行する前に、ダウンロードしたファイルの ドキュメント フォルダーを確認します。

Azure Storage Explorer を使用して、ストレージ アカウント内のファイルを表示することもできます。 Microsoft Azure Storage Explorer は無料のクロスプラットフォーム ツールであり、ストレージ アカウントの情報にアクセスできます。

ファイルを確認したら、Enter キーを押してテスト ファイルを削除し、デモを終了します。 example.rb ファイルを開いてコードを見てください。

サンプル コードを理解する

次に、サンプル コードについて説明し、そのしくみを理解できるようにします。

ストレージ オブジェクトへの参照を取得する

最初に、Blob Storage へのアクセスと管理に使用するオブジェクトのインスタンスを作成します。 これらのオブジェクトは相互に構築されます。 それぞれは、リスト内の次の 1 つで使用されます。

  • Azure Storage BlobService オブジェクトのインスタンスを作成して、接続資格情報を設定します。
  • アクセスする コンテナー を表す Container オブジェクトを作成します。 コンテナーは、コンピューター上のフォルダーを使用してファイルを整理する場合と同様に、BLOB を整理するために使用されます。

コンテナー オブジェクトを取得したら、関心のある特定の BLOB を指す ブロック BLOB オブジェクトを作成できます。 Block オブジェクトを使用して、BLOB の作成、ダウンロード、コピーを行います。

重要

コンテナーの名前は小文字にする必要があります。 コンテナー名と BLOB 名の詳細については、「コンテナー、BLOB、およびメタデータの名前付けと参照」を参照してください。

次のコード例:

  • 新しいコンテナーを作成します
  • BLOB がパブリックになるように、コンテナーに対するアクセス許可を設定します。 コンテナーは、一意の ID が追加された quickstartblobs と呼ばれます。
# 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")

コンテナーに BLOB を作成する

Blob Storage では、ブロック BLOB、追加 BLOB、ページ BLOB がサポートされます。 BLOB を作成するには、BLOB のデータを渡す create_block_blob メソッドを呼び出します。

次の例では、前に作成したコンテナー 一意の ID と.txtファイル拡張子を持つ QuickStart_ という名前の BLOB を作成します。

# 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)

ブロック BLOB は 4.7 TB までであり、スプレッドシートから大きなビデオ ファイルまで、あらゆるものにすることができます。 ページ BLOB は、主に IaaS 仮想マシンをバックアップする VHD ファイルに使用されます。 追加 BLOB は、ファイルに書き込んで情報を追加し続ける場合など、ログ記録に一般的に使用されます。

コンテナー内の BLOB を一覧表示する

list_blobs メソッドを使用して、コンテナー内のファイルの一覧を取得します。 次のコードでは、BLOB の一覧を取得し、その名前を表示します。

# 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

BLOB をダウンロードする

get_blobメソッドを使用してローカル ディスクに BLOB をダウンロードします。 次のコードは、前のセクションで作成した BLOB をダウンロードします。

# 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)}

リソースをクリーンアップする

BLOB が不要になった場合は、 delete_blob を使用して削除します。 delete_container メソッドを使用してコンテナー全体を削除します。 コンテナーを削除すると、コンテナーに格納されているすべての BLOB も削除されます。

# Clean up resources, including the container and the downloaded file
blob_client.delete_container(container_name)
File.delete(full_path_to_file)

BLOB を使用して Ruby アプリケーションを開発するためのリソース

Ruby 開発については、次の追加リソースを参照してください。

次のステップ

このクイック スタートでは、Ruby を使用して Azure Blob Storage とローカル ディスクの間でファイルを転送する方法について説明しました。 Blob Storage の操作の詳細については、ストレージ アカウントの概要に進んでください。

ストレージ エクスプローラーと BLOB の詳細については、「Storage Explorer を使用した Azure Blob Storage リソースの管理」を参照してください