AWS S3 Bucket

AWS S3 bucket から Images を Roboflow にアップロード

AWS S3 で画像データを保存し Roboflow にアップロードする場合、一般的には 2 つの方法があります。署名付き URL を使う方法と、AWS CLI 経由で画像を手動でローカルにダウンロードしてからアップロードする方法です。どちらを選ぶかは、データ処理と管理に関する具体的な要件によります。

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

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

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

AWS CLI のセットアップ

スクリプトを使用する前に、必要な認証情報を使って AWS CLI をセットアップしていることを確認してください。これにより、目的の S3 バケットにアクセスして管理できるようになります。

AWS CLI の設定

  1. AWS CLI をインストールしたら、ターミナルまたはコマンドプロンプトを開きます。

  2. 次のコマンドを実行します:

    aws configure
  3. AWS の認証情報の入力を求められます:

    AWS Access Key ID [None]: YOUR_ACCESS_KEY
    AWS Secret Access Key [None]: YOUR_SECRET_ACCESS_KEY
    Default region name [None]: YOUR_PREFERRED_REGION (例: us-west-1)
    Default output format [None]: json

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

Python の boto3 を使用して、S3 バケット内の画像の署名付き URL を生成できます。

上記のコードスニペットでは、S3 バケット名、S3 バケット内の画像のオブジェクト名、そして aws region が必要です。画像の署名付き URL が生成され、返されます。

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

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

AWS からデータをアップロードするには、まず awscli コマンドラインツールをインストールします。このツールを使うと、コマンドラインから AWS アカウントを操作できます。コマンドラインツールをインストールしたら、次のコマンドを実行します:

置き換えてください mybucket バケット名と folder_path には、エクスポートしたいフォルダまたはファイルの名前を指定します。このコマンドは、AWS から現在の作業ディレクトリ(.).

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

データをダウンロードしたので、Roboflow には次のいずれかを使ってアップロードできます。 Upload Web Interface または Roboflow CLI.

も参照

最終更新

役に立ちましたか?