다음을 통해 공유


빠른 시작: 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 Portal에서 스토리지 계정으로 이동합니다.

  2. 스토리지 계정 개요의 설정 섹션에서 액세스 키 선택하여 계정 액세스 키 및 연결 문자열을 표시합니다.

  3. 권한 부여에 필요한 스토리지 계정의 이름을 확인합니다.

  4. key1아래에서 값을 찾고 복사를 선택하여 계정 키를 복사합니다.

    계정 키를 Azure 포탈에서 복사하는 방법을 보여주는 스크린샷

스토리지 연결 문자열 구성

스토리지 계정 이름 및 계정 키를 제공하여 애플리케이션에 대한 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 키를 누르면 샘플 프로그램에서 스토리지 컨테이너와 로컬 파일을 삭제합니다. 계속하기 전에 Documents 폴더에서 다운로드한 파일을 확인합니다.

Azure Storage Explorer 사용하여 스토리지 계정의 파일을 볼 수도 있습니다. Azure Storage Explorer는 스토리지 계정 정보에 액세스할 수 있는 무료 플랫폼 간 도구입니다.

파일을 확인한 후 Enter 키를 눌러 테스트 파일을 삭제하고 데모를 종료합니다. example.rb 파일을 열어 코드를 확인합니다.

샘플 코드 이해

다음으로, 작동 방식을 이해할 수 있도록 샘플 코드를 안내합니다.

스토리지 개체에 대한 참조 가져오기

가장 먼저 해야 할 일은 Blob Storage에 액세스하고 관리하는 데 사용되는 개체의 인스턴스를 만드는 것입니다. 이러한 개체는 서로를 기반으로 발전합니다. 각 항목은 목록의 다음 항목에서 사용됩니다.

  • Azure Storage BlobService 개체의 인스턴스를 만들어 연결 자격 증명을 설정합니다.
  • 액세스하는 컨테이너를 나타내는 Container 개체를 만듭니다. 컨테이너는 컴퓨터의 폴더를 사용하여 파일을 구성하는 것처럼 Blob을 구성하는 데 사용됩니다.

컨테이너 개체가 있으면 관심 있는 특정 Blob을 가리키는 Block 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.7TB(테라바이트)까지 될 수 있으며, 스프레드시트부터 대용량 비디오 파일에 이르기까지 다양한 파일로 사용할 수 있습니다. 페이지 Blob은 주로 IaaS 가상 머신을 백업하는 VHD 파일에 사용됩니다. 추가 블롭은 파일에 쓰고 더 많은 정보를 계속 추가하려는 경우와 같이 일반적으로 로깅에 사용됩니다.

컨테이너에 있는 블롭들 나열하기

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 작업에 대해 자세히 알아보려면 Storage 계정 개요를 계속 진행하세요.

Storage Explorer 및 Blob에 대한 자세한 내용은 Storage Explorer 사용하여 Azure Blob Storage 리소스 관리참조하세요.