For the complete documentation index, see llms.txt. This page is also available as Markdown.

Azure Blob Storage

Azure Blob Storage から画像を Roboflow にアップロード

このページでは、署名付きURLとローカルダウンロードのワークフローについて説明します。ソースデータが Azure にある場合は、 Datasources このパターンを適応させる代わりに、Bucket Mirror を使用してください。

Azure Blob Storage に画像データを保存し、Roboflow にアップロードする場合、一般的には 2 つの選択肢があります。署名付きURLを使用する方法、または画像を手動でローカルにダウンロードして(Azure CLI 経由で)ローカルからアップロードする方法です。どちらを選ぶかは、データ処理や管理に関する具体的なニーズによります。

  • Signed URLsこの方法は、画像をローカルマシンにダウンロードする際に発生する余分な手順と時間を避けたい場合に特に有利です。署名付きURLを使えば、画像データを Azure Blob Storage から Roboflow API に直接アップロードでき、ローカルに保存する必要がありません。その結果、処理が速くなり、ローカルシステムへの負荷も軽減されます。

  • CLI でローカル画像をまずローカル環境にダウンロードしたい方がよいシナリオもあります。たとえば、Roboflow にアップロードする前に画像を前処理したり、手動で確認したりする必要がある場合は、ローカルコピーがあると便利です。

適切な方法の選択は、データ転送速度、前処理の必要性、画像の手動確認など、具体的なユースケース要件によって決まります。

Azure 接続文字列

Storage Account を作成した後、Azure portal の "Security + networking" 配下にある "Access keys" セクションでアクセスキーまたは接続文字列を確認できます。これらの資格情報は、アプリケーションの認証に使用されます。

オプション1:Signed URL 経由でアップロード

Azure SDK for Python を使って、Azure Blob Storage 内の画像に対する署名付きURLを生成できます。

def get_blob_sas_url(blob_service_client, container_name: str, blob_name: str) -> str:
    """Azure Blob の SAS URL を生成します。"""
    from azure.storage.blob import generate_blob_sas, BlobSasPermissions
    from datetime import datetime, timedelta

    sas_token = generate_blob_sas(
        blob_service_client.account_name,
        container_name,
        blob_name,
        account_key=blob_service_client.credential.account_key,
        permission=BlobSasPermissions(read=True),
        expiry=datetime.utcnow() + timedelta(hours=1)
    )
    
    blob_url = f"https://{blob_service_client.account_name}.blob.core.windows.net/{container_name}/{blob_name}?{sas_token}"
    return blob_url

上記のコードスニペットでは、blob service client、container name、blob name が必要です。画像の署名付きURLが生成され、返されます。

これを基に、Azure Blob Storage 内の利用可能なすべてのオブジェクトを取得し、それらを API 経由で Roboflow にアップロードする完全なソリューションを作成できます。このソリューションの概要を以下に示します。

オプション 2: Azure からデータをローカルにダウンロード

最初に、 azcopy コマンドラインユーティリティをインストールします。このユーティリティを使うと、Azure Storage からファイルやフォルダーをダウンロードできます。次に、 Shared Access Signature トークンを使用して Azure アカウントで認証します。詳細は SAS トークンの取得方法 について、azcopy のドキュメントで確認できます。

準備ができたら azcopy 、次のコマンドを実行してファイルまたはフォルダーをダウンロードします。

置き換えてください C:\local\path をダウンロードしたいフォルダーまたはファイルのパスに置き換えてください。認証用の SAS トークンには <sas-token> の値を置き換えてください。ファイルやフォルダーを再帰的にダウンロードしたい場合は、上記のように --recursive=true 引数を指定してください。そうでない場合は、この引数を削除してください。

Roboflow にデータをアップロード

データをダウンロードしたので、次は Upload Web Interface または Roboflow CLI.

関連項目

最終更新

役に立ちましたか?