Прочитать на английском

Поделиться через


Краткое руководство: клиентская библиотека хранилища блобов Azure для Ruby

Узнайте, как с помощью Ruby создавать, скачивать и перечислять объекты BLOB в контейнере в Azure Blob Storage.

Предпосылки

Для доступа к службе хранилища Azure требуется подписка 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и выберите Копировать, чтобы скопировать ключ учетной записи.

    снимок экрана: копирование ключа учетной записи с портала Azure

Настройка строки подключения хранилища

Укажите имя учетной записи хранения и ключ учетной записи для создания экземпляра BlobService для вашего приложения.

Следующий код в файле example.rb создает экземпляр нового объекта BLOBService. Замените значения accountname и accountkey вашим именем и ключом учетной записи.

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

Запустите пример

Пример создает контейнер в хранилище объектов блоба, создает новый блоб в контейнере, выводит список блобов в контейнере и загружает блоб в локальный файл.

Запустите образец. Ниже приведен пример выходных данных запуска приложения:

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

При нажатии клавиши ВВОД для продолжения пример программы удаляет контейнер хранилища и локальный файл. Прежде чем продолжить, проверьте папку документов для загруженного файла.

Вы также можете использовать обозреватель служб хранилища Azure для просмотра файлов в учетной записи хранения. Обозреватель службы хранилища Azure — это бесплатное кроссплатформенное средство для доступа к данным учетной записи хранения.

После проверки файлов нажмите клавишу ВВОД, чтобы удалить тестовые файлы и завершить демонстрацию. Откройте файл example.rb, чтобы просмотреть код.

Разбор примера кода

Далее мы рассмотрим пример кода, чтобы понять, как это работает.

Получение ссылок на объекты хранилища

Первым делом является создание экземпляров объектов, используемых для доступа к хранилищу BLOB-объектов и управления ими. Эти объекты основаны друг на друге. Каждый используется следующим элементом в списке.

  • Создайте экземпляр хранилища Azure объект blobService для настройки учетных данных подключения.
  • Создайте объект контейнера , который представляет контейнер, к которому вы получаете доступ. Контейнеры используются для организации ваших BLOB-объектов, так же как папки на компьютере используются для организации файлов.

После создания объекта контейнера можно создать объект блокировать BLOB-объект, указывающий на конкретный большой двоичный объект, в котором вы хотите. Используйте объект Block для создания, скачивания и копирования блобов.

Важно!

Имена контейнеров должны состоять из знаков нижнего регистра. Дополнительные сведения об именах контейнеров и блобов см. Именование и ссылки на контейнеры, блобы и метаданные.

Следующий пример кода:

  • Создает новый контейнер
  • Задает разрешения для контейнера для публичного доступа к 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. Чтобы создать большой двоичный объект, используйте функцию create_block_blob, передав данные для большого двоичного объекта.

В следующем примере создается блоб с именем QuickStart_ с уникальным идентификатором и расширением файла .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)

Совмещенные двоичные блоки могут иметь размер до 4,7 ТБ и включать в себя широкий спектр файлов, от электронных таблиц до больших видеофайлов. Страничные блобы в основном используются для VHD-файлов, которые поддерживают виртуальные машины IaaS. Добавляемые блобы обычно используются для ведения логов, например, когда нужно записать данные в файл и затем добавлять в него новую информацию.

Перечислите объекты 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, созданный в предыдущем разделе.

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

Очистка ресурсов

Если блоб больше не нужен, используйте 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)

Ресурсы для разработки приложений Ruby с большими двоичными объектами

Дополнительные ресурсы для разработки Ruby см. в следующих следующих ресурсах:

Дальнейшие действия

Из этого краткого руководства вы узнали, как передавать файлы между хранилищем BLOB-объектов Azure и локальным диском с помощью Ruby. Чтобы узнать больше о работе с Blob Storage, перейдите к обзору учетной записи хранилища.

Обзор учетной записи хранения

Дополнительные сведения о Storage Explorer и BLOB-объектах читайте в статье Управление ресурсами хранилища BLOB-объектов Azure с помощью Storage Explorer.