Краткое руководство: клиентская библиотека хранилища блобов Azure для Ruby
Узнайте, как с помощью Ruby создавать, скачивать и перечислять объекты BLOB в контейнере в Azure Blob Storage.
Для доступа к службе хранилища Azure требуется подписка Azure. Если у вас еще нет подписки, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Доступ к хранилищу Azure осуществляется с помощью учетной записи хранения. Для работы с этим руководством создайте учетную запись хранения с помощью портала Azure, Azure PowerShell или Azure CLI. Инструкции по созданию учетной записи хранения см. в статье Создайте учетную запись хранения.
Убедитесь, что установлены следующие дополнительные предварительные требования:
клиентская библиотека Azure Storage для Rubyс использованием пакета RubyGem:
gem install azure-storage-blob
Пример приложения , используемый в этом кратком руководстве, является базовым приложением Ruby.
Используйте Git для скачивания копии приложения в среду разработки. Эта команда клонирует репозиторий на локальный компьютер:
git clone https://github.com/Azure-Samples/storage-blobs-ruby-quickstart.git
Перейдите к папке storage-blobs-ruby-quickstart и откройте файл example.rb в редакторе кода.
Образцу приложения необходима авторизация доступа к вашему аккаунту хранения данных. Предоставьте приложению данные учетной записи хранения в виде строки подключения. Чтобы просмотреть учетные данные учетной записи хранения, выполните приведенные далее действия.
Войдите в портал Azure и перейдите в вашу учетную запись хранения.
В разделе Параметры в обзоре учетной записи хранения выберите Ключи доступа, чтобы отобразить ключи доступа к учетной записи и строку подключения.
Запишите имя учетной записи хранения, которую потребуется для авторизации.
Найдите значение ключа в разделе key1и выберите Копировать, чтобы скопировать ключ учетной записи.
Укажите имя учетной записи хранения и ключ учетной записи для создания экземпляра 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. Добавляемые блобы обычно используются для ведения логов, например, когда нужно записать данные в файл и затем добавлять в него новую информацию.
Получите список файлов в контейнере с помощью метода 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 для службы хранилища Azure на GitHub.
- Изучите примеры Azure, написанные с использованием клиентской библиотеки Ruby.
- пример. Начало работы со службой хранилища Azure в Ruby
Из этого краткого руководства вы узнали, как передавать файлы между хранилищем BLOB-объектов Azure и локальным диском с помощью Ruby. Чтобы узнать больше о работе с Blob Storage, перейдите к обзору учетной записи хранилища.
Дополнительные сведения о Storage Explorer и BLOB-объектах читайте в статье Управление ресурсами хранилища BLOB-объектов Azure с помощью Storage Explorer.