Azure Blob Storage と Go で作業を開始する

この記事では、Go 用 Azure Blob Storage クライアント モジュールを使用して、Azure Blob Storage に接続する方法について説明します。 接続されると、コードは、Blob Storage サービスのコンテナー、BLOB、機能を使って動作できます。

API リファレンスのドキュメント | ライブラリのソース コード | パッケージ (pkg.go.dev)

前提条件

プロジェクトの設定

このセクションでは、Go 用 Azure Blob Storage クライアント モジュールを操作するためのプロジェクトの準備について説明します。

GOPATH から、次のコマンドを使用して、azblob モジュールをインストールします。

go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob

Microsoft Entra ID で認証するには (推奨)、次のコマンドを使用して azidentity モジュールをインストールします。

go get github.com/Azure/azure-sdk-for-go/sdk/azidentity

次にコード ファイルを開き、必要なインポート パスを追加します。 この例では、以下を .go ファイルに追加します。

import (
    "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
    "github.com/Azure/azure-sdk-for-go/sdk/azidentity"
)

BLOB クライアント モジュールの情報:

  • azblob: サービス、コンテナー、BLOB を操作するために使用できるメソッドが含まれています。

Blob Storage へのアクセスを承認して接続する

アプリを Blob Storage に接続するには、azblob.NewClient を使用してクライアント オブジェクトを作成します。 このオブジェクトは、ストレージ アカウント レベルでデータ リソースを操作するための開始点となります。 それを使って、ストレージ アカウントとそのコンテナーを操作できます。

ベスト プラクティスを含むクライアント オブジェクトの作成と管理の詳細については、「データ リソースを操作するクライアント オブジェクトの作成および管理」を参照してください。

Microsoft Entra 認可トークン (推奨)、アカウント アクセス キー、または Shared Access Signature (SAS) を使用して、クライアント オブジェクトを認可できます。

Microsoft Entra ID を使用して認可するには、セキュリティ プリンシパルを使用する必要があります。 次の記事では、さまざまな認証シナリオに関するガイダンスを提供しています。

DefaultAzureCredential を使用してアクセスを承認する

Blob Storage へのアクセスを承認して接続する最も簡単で安全な方法は、DefaultAzureCredential インスタンスを作成して OAuth トークンを取得することです。 その後、その資格情報を使用して、azblob.NewClient を使用してクライアント オブジェクトを作成できます。

func getServiceClientTokenCredential(accountURL string) *azblob.Client {
    // Create a new service client with token credential
    credential, err := azidentity.NewDefaultAzureCredential(nil)
    handleError(err)

    client, err := azblob.NewClient(accountURL, credential, nil)
    handleError(err)

    return client
}

アプリの構築

Azure Blob Storage のデータ リソースを操作するアプリを構築する際、コードでは主に、ストレージ アカウント、コンテナー、BLOB という 3 つのリソースの種類と対話します。 これらのリソースの種類、リソースの相互関係、およびアプリがリソースと対話する方法について詳しくは、「アプリが Blob Storage データ リソースと対話する方法を理解する」を参照してください。

以下のガイドでは、Go 用の Azure Blob Storage クライアント モジュールを使って、データにアクセスし、特定のアクションを実行する方法について説明します。

ガイド 説明
再試行ポリシーを構成する クライアント操作の再試行ポリシーを実装します。
BLOB をコピーする ある場所から別の場所に BLOB をコピーします。
コンテナーの作成 コンテナーを作成します。
BLOB の削除と復元 BLOB を削除し、論理的な削除が有効になっている場合は、削除された BLOB を復元します。
コンテナーを削除して復元する コンテナーを削除し、論理的な削除が有効になっている場合は、削除されたコンテナーを復元します。
BLOB をダウンロードする 文字列、ストリーム、ファイル パスを使って BLOB をダウンロードします。
タグを使って BLOB を検索する タグの設定と取得を行い、タグを使って BLOB を検索します。
BLOB をリストする さまざまな方法で BLOB の一覧を表示します。
コンテナーをリストする アカウントのコンテナーの一覧を表示し、さまざまなオプションを使って一覧をカスタマイズします。
プロパティとメタデータの管理 (BLOB) コンテナーのプロパティとメタデータを管理します。
プロパティとメタデータの管理 (コンテナー) コンテナーのプロパティとメタデータを管理します。
BLOB をアップロードする 文字列、ストリーム、ファイル パス、その他の方法を使って BLOB をアップロードする方法について説明します。

Note

このガイドのコード サンプルは、Azure Blob Storage と Go の使用を開始するのに役立つことを目的としています。 エラー処理と Context の値は、アプリケーションのニーズに合わせて変更する必要があります。