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

Google Cloud Storage

Google Cloud StorageからRoboflowへ画像をアップロード

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

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

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

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

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

Google Cloud JSON キー

バケットに対する適切な権限を持つサービスアカウントを作成し、JSON キーファイルをダウンロードします。このファイルには、アプリケーションの認証に使用する認証情報が含まれます。

オプション 1: 署名付きURL経由でアップロード

Python で Google Cloud SDK を使用することで、Google Cloud Storage バケット内の画像に対する署名付きURLを生成できます。

def get_gcs_signed_url(bucket_name: str, blob_name: str) -> str:
    """GCS オブジェクトの署名付きURLを生成します。"""
    storage_client = storage.Client.from_service_account_json(GOOGLE_APPLICATION_CREDENTIALS)
    bucket = storage_client.get_bucket(bucket_name)
    blob = bucket.get_blob(blob_name)
    
    url = blob.generate_signed_url(
        version="v4",
        expiration=3600,  # 3600 秒(1 時間)
        method="GET"
    )
    return url

上のコードスニペットでは、Google Cloud Storage バケット名と blob 名が必要です。画像の署名付きURLが生成され、返されます。

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

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

GCP からデータをダウンロードするには、まず GCP CLI をインストールします。その後、GCP ユーザーアカウントで認証します。

画像または画像フォルダをダウンロードするには、次のコマンドを使用します。

置き換えてください mybucket を GCP ストレージバケットの名前に置き換え、 folder をコピーしたいファイルまたはフォルダの保存先に置き換えます。このコマンドは、対象のファイルまたはフォルダを現在の作業ディレクトリ(.).

Roboflow へのデータアップロード

データをダウンロードしたので、これを Roboflow にアップロードできます。方法は アップロード Web インターフェース または Roboflow CLI.

こちらも参照

最終更新

役に立ちましたか?