共用方式為


快速入門:適用於 Ruby 的 Azure Blob 記憶體用戶端連結庫

瞭解如何運用 Ruby 在 Microsoft Azure Blob 儲存體的容器中建立、下載及列出 Blob。

先決條件

若要存取 Azure 儲存體,您需要有 Azure 訂用帳戶。 如果您還沒有訂用帳戶,請先建立免費帳戶,再開始操作。

對 Azure 儲存體的所有存取都是透過儲存體帳戶進行。 在本快速入門中,使用 Azure 入口網站、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 入口網站複製您的認證

範例應用程式需要授權存取記憶體帳戶。 以連接字串的形式將記憶體帳戶認證提供給應用程式。 若要檢視您的記憶體帳戶認證:

  1. Azure 入口網站前往您的儲存體帳戶。

  2. 在儲存體帳戶概觀的 [設定] 區段中,選取 [存取金鑰] 以顯示您的帳戶存取金鑰和連接字串。

  3. 請記下您的儲存體帳戶名稱,因為您需要它來進行授權。

  4. 在 [key1] 底下尋找 [Key] 值,然後選取 [複製] 以複製帳戶密鑰。

    顯示如何從 Azure 入口網站複製帳戶金鑰的螢幕擷圖

設定儲存體連接字串

提供記憶體帳戶名稱和帳戶金鑰,為您的應用程式建立 BlobService 實例。

example.rb 檔案中的下列程式代碼會具現化新的 BlobService 物件。 以您的帳戶名稱和金鑰取代 accountnameaccountkey 值。

# 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 記憶體中建立容器、在容器中建立新的 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 儲存體瀏覽器 來檢視儲存體帳戶中的檔案。 Azure 儲存體總管是免費的跨平台工具,可讓您存取儲存體帳戶資訊。

驗證檔案之後,請按 Enter 鍵來刪除測試檔案並結束示範。 開啟 example.rb 檔案以查看程式代碼。

了解範例程式碼

接下來,我們會逐步解說範例程序代碼,讓您瞭解其運作方式。

取得儲存物件的參照

第一件事是建立用來存取和管理 Blob 記憶體的物件實例。 這些物件建構於彼此之上。 每個項目都被清單中的下一個所使用。

  • 建立 Azure 記憶體 BlobService 對象的實例,以設定連線認證。
  • 建立 Container 物件,代表您要存取的容器。 容器可用來組織 Blob,就像使用電腦上的資料夾來組織檔案一樣。

擁有容器對象之後,您可以建立 區塊 Blob 物件,指向您感興趣的特定 Blob。 使用 Block 物件來建立、下載及複製 Blob。

這很重要

容器名稱必須是小寫字母。 如需容器和 Blob 名稱的詳細資訊,請參閱 命名和參考容器、Blob 和元數據

下列範例程式代碼:

  • 建立新的容器
  • 設定容器的許可權,讓 Blob 是公用的。 容器稱為 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 記憶體支援區塊 Blob、附加 Blob 和分頁 Blob。 若要建立 Blob,請呼叫傳入 Blob 數據的 create_block_blob 方法。

下列範例會建立名為 QuickStart_ 的 Blob,並使用唯一識別碼和 .txt 副檔名,放在稍早建立的容器中。

# 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

下載資料塊

使用 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 方法刪除整個容器。 刪除容器時,也會刪除儲存在容器中的所有資料包。

# 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 記憶體與本機磁碟之間傳輸檔案。 若要深入瞭解如何使用 Blob 記憶體,請繼續進行記憶體帳戶概觀。

如需記憶體總管和 Blob 的詳細資訊,請參閱 使用記憶體總管管理 Azure Blob 記憶體資源