> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/datasets/ja/toappurdo/adding-data/datasources.md).

# データソース

データソースを使用すると、クラウドストレージから Roboflow のアセットライブラリへ画像とメタデータを継続的にミラーリングできます。ミラーリング後は、画像を意味、カスタムメタデータ、タグ、または画像の類似度で検索でき、ラベリングと学習のために任意のプロジェクトに追加できます。

現在は、AWS S3 および S3 互換ストレージバケットのミラーリングがサポートされています。Azure Blob Storage と Google Cloud Storage のサポートも近日対応予定です。

{% hint style="warning" %}
ソースデータが AWS S3 などのクラウドストレージにある場合は、Roboflow への標準的な取り込み経路として Datasources と Bucket Mirror を使用してください。署名付き URL アップロードやローカルダウンロードのワークフローは、一度限りまたは随時のインポートにのみ使用してください。
{% endhint %}

## バケットミラーの仕組み

データソースを設定すると、Roboflow は S3 バケットをクロールし、一致するすべての画像ファイルをワークスペースの [アセットライブラリ](https://docs.roboflow.com/platform/workspaces/asset-library).

* 対応画像形式: JPEG, PNG, BMP, WebP, AVIF
* ワークスペースにすでに存在するファイル（S3 の場所とハッシュで一致するもの）は再インポートされないため、egress コストを削減できます
* もし `.json` 同じベース名の画像の横にサイドカー ファイルが存在する場合、そのメタデータがインポートされます。ネストされたキーはドット表記で平坦化されます（例: `capture.temperature`） - 参照 [メタデータ サイドカー](#metadata-sidecars)
* バケットから消えたファイルは既定では保持されます。代わりに削除するには、孤立ファイルの削除を有効にします（参照 [孤立ファイルの削除](#removing-orphaned-files))

## バケットを Roboflow にミラーリングする

### 前提条件

1. 画像データを含む AWS S3 バケット
2. そのバケットから読み取り可能な再利用可能な Roboflow 認証情報。参照 [データソース認証情報](/datasets/ja/toappurdo/adding-data/datasource-credentials.md)、その後に [AWS S3 認証情報](/datasets/ja/toappurdo/adding-data/datasource-credentials/aws-s3.md).

### Roboflow で認証情報を追加する

Roboflow は、バケットへのアクセスを再利用可能な認証情報として安全に暗号化して保存します。AWS のセットアップ手順と最小権限のガイダンスについては [AWS S3 認証情報](/datasets/ja/toappurdo/adding-data/datasource-credentials/aws-s3.md).

次へ移動： [認証情報](https://app.roboflow.com/settings/thirdpartykeys) ワークスペース設定で を開き、 をクリックしてください [認証情報を追加](https://app.roboflow.com/settings/thirdpartykeys#create).

### バケットミラーリング用のデータソースを設定する

[新しいデータソースを作成する](https://app.roboflow.com/settings/datasources) をワークスペース設定から作成します。フォームには 2 つのタブがあります:

* 「Connection」には、バケットの詳細とアクセス情報（名前、プロバイダー、バケット、リージョン、認証情報）が含まれます。「Credential」ドロップダウンから保存済みの認証情報を選択するか、横の「+」を使ってフォームを離れずに追加できます。
* 「Mirror Configuration」には、インポート先、ファイルフィルター、ミラー動作が含まれます。

### インポート先の選択

「Mirror Configuration」の下にある「Import Destination」セクションで、ミラーリングされたファイルの保存先を制御します。各データソースは 1 つの保存先にのみインポートされます。別の場所にインポートするには、別のデータソースを追加してください。

* 「Workspace」では [アセットライブラリ](https://docs.roboflow.com/platform/workspaces/asset-library)へミラーリングされます。「Import into」ドロップダウンでファイルをワークスペースのルートに残すか、プロジェクトを選択してそのプロジェクトにも追加できます。
* 「Folder」は、ミラーリングされた画像をプロジェクトフォルダに限定し、そのフォルダのチームだけが見られるようにします。このオプションは [プロジェクトフォルダ権限](/datasets/ja/guan-li/project-folders/project-folder-permissions.md).

### glob パターンによるフィルタリング

既定では、バケット内のすべての対応画像ファイルがインポートされます。インポートするファイルは、直接指定するか、 `.txt` ファイルをバケット内に保存して glob パターンで制限できます。

glob パターンの代わりに、ファイルパスの明示的なホワイトリストを指定することもできます。

### パターンの意味

* `*` 以外の任意の文字に一致します `/` （単一のディレクトリ階層）
* `**` を含む任意の文字に一致します `/` （複数のディレクトリ階層）

### 例

**接頭辞で一致:**

```
harvest**
```

一致するもの: `harvest`, `harvest2024`, `harvest/sun/file.jpg`, `harvest-data.png`\
一致しないもの: `Harvest`, `my-harvest`

**フォルダ内のすべてに一致:**

```
/harvest/sun/**
```

一致するもの: `/harvest/sun/file.txt`, `/harvest/sun/subfolder/image.jpg`, `/harvest/sun/deep/nested/path/data.png`\
一致しないもの: `/harvest/moon/file.txt`, `/other/sun/file.txt`

**サブツリー内で接尾辞により一致:**

```
/planting/**/*crops.png
```

一致するもの: `/planting/wheat-crops.png`, `/planting/subfolder/rice-crops.png`\
一致しないもの: `/planting/wheat.png`, `/other/wheat-crops.png`

**名前パターンで特定のディレクトリレベルに一致:**

```
/*/a/**/*weed*2025-10-27.png
```

一致するもの: `/farm/a/field/weed-2025-10-27.png`, `/garden/a/plot/seaweed-data-2025-10-27.png`\
一致しないもの: `/farm/b/field/weed-2025-10-27.png`

**完全一致パス:**

```
/exact/path/to/file.jpg
```

その特定のファイルのみに一致します。

**ファイル名内のリテラルワイルドカード:**\
パターンを引用符で囲んで `*` をリテラル文字として扱います:

```
"/path/to/file*.jpg"
```

### 孤立ファイルの削除

孤立ファイルの削除は既定でオフになっているため、バケットから消えたファイルは保持されます。 `removeOrphanedSourcesWhenDisappeared` が有効な場合、S3 バケットに存在しなくなったファイル（または glob パターンに一致しなくなったファイル）は、どのプロジェクトや別のデータソース設定からも参照されていなければ、Roboflow ワークスペースから削除されます。

これはデータソースを削除する場合にも適用されます。孤立ファイルの削除が有効で、バケットが少なくとも 1 回ミラーリングされている場合、そのバケット由来で他のプロジェクトで使われていない画像はクリーンアップワーカーによって削除されることがあります。削除確認ダイアログではこれについて警告し、続行前に明示的な確認が必要になります。これを避けるには、削除する前にデータソースのミラー設定で孤立ファイルの削除を無効にしてください。

### ファイル名の付け方

その `namingStrategy` 設定は、インポートされたファイルの命名方法と Roboflow での表示方法を制御します:

| 戦略         | 説明                                                     |
| ---------- | ------------------------------------------------------ |
| `fullPath` | S3 キーのフルパスをファイル名として使用します（既定）                           |
| `fileName` | S3 キーのファイル名部分のみを使用します                                  |
| `eTag`     | S3 オブジェクトの ETag を使用します                                 |
| `metadata` | 画像のメタデータ内の値を使用します。指定は `namingStrategyMetadataKey` （必須） |

### 画像の更新

S3 内の画像が変更されると、Roboflow はワークスペース内のコピーを更新できます:

* `updateImageWhenNewer` （既定: `true`） - S3 オブジェクトが保存済みバージョンより新しい場合に画像を再インポートします
* `updateImageStrategy` - 更新の適用方法を制御します。現在サポートされているのは `overwrite` （既存の画像を置き換え）です

### メタデータ サイドカー

各画像の横に同じベース名の `.json` サイドカー ファイルをバケットに配置して、画像にメタデータを付与します:

```
my-bucket/
  images/
    photo_001.jpg
    photo_001.json      # photo_001.jpg のメタデータ
    photo_002.jpg
    photo_002.json      # photo_002.jpg のメタデータ
```

サイドカー ファイルにはキーと値のペアが含まれます:

```json
{
  "camera_id": "cam001",
  "location": "warehouse-3",
  "capture": { "temperature": 72.5, "humidity": 45 }
}
```

ネストされたオブジェクトはドット表記で平坦化されます。上の例では次のようになります:

| キー                    | 値               |
| --------------------- | --------------- |
| `camera_id`           | `"cam001"`      |
| `location`            | `"warehouse-3"` |
| `capture.temperature` | `72.5`          |
| `capture.humidity`    | `45`            |

サイドカー ファイルの制約:

* 最大ファイルサイズ: 256 KB
* 有効な JSON である必要があります
* `null` と `undefined` 値は除外されます

### メタデータ同期の戦略

画像のメタデータ サイドカー `.json` ファイルが S3 で更新されると、その更新の適用方法を制御する 2 つの設定があります:

* `updateMetadataWhenNewer` （既定: `true`） - サイドカー ファイルが保存済みバージョンより新しい場合にメタデータを再同期します
* `updateMetadataStrategy` - 同期されたメタデータを、UI または API で手動設定したメタデータとどのように扱うかを制御します:

| 戦略                     | 動作                                             |
| ---------------------- | ---------------------------------------------- |
| `mergeBucketWins` （既定） | 両方のソースをマージします。キーが競合した場合は、バケット側の値が優先されます        |
| `mergeUserWins`        | 両方のソースをマージします。キーが競合した場合は、ユーザー設定の値が優先されます       |
| `overwrite`            | バケットのメタデータが既存のメタデータを完全に置き換えます                  |
| `untilFirstChange`     | ユーザーがいずれかのメタデータ項目を手動で編集するまでバケットから同期し、その後は停止します |
| `append`               | バケットから新しいキーのみを追加し、既存のキーは上書きしません                |

## ミラーリングのトリガー

いつでも [データソース一覧](https://app.roboflow.com/settings/datasources) からデータソースの横にある再生ボタンをクリックして、手動でミラーをトリガーできます。

手動トリガーには次のガードが適用されます:

* **進行中**: すでに同期が実行中の場合、完了するまで次の同期を開始できません。
* **クールダウン**: 同期完了後、手動の再トリガーは 15 分間ブロックされます。ボタンのツールチップには残り時間が表示されます。クールダウンは次の場合にスキップされます:
  * 前回の同期で新規インポート対象が見つからなかった場合（キューに入ったファイルが 0、またはすべてのファイルが失敗した場合）。
  * 前回の実行以降にデータソース設定を編集した場合。
  * 前回の実行がエラーで完了した場合。
* **1時間あたりの上限**: データソースはローリング 1 時間あたり最大 10 回まで同期できます。クールダウンのスキップにより本来はすぐに再トリガーできる場合でも、この上限が適用されます。

スケジュール済み（cron）同期は、クールダウンと 1 時間あたりの上限の両方をバイパスします。

### 日次スケジュールで実行する

自動的にミラーリングするには、「Mirror Configuration」タブの「Scheduling」セクションを開き、「Run automatically on a daily schedule」にチェックを入れます。その後、データソースは 24 時間ごとに同期されます。スケジューリングは既定でオフです。

## 同期済みアセットを表示する

各 [データソースエントリには](https://app.roboflow.com/settings/datasources) 目のアイコンがあり、それを開くと [アセットライブラリ](https://docs.roboflow.com/platform/workspaces/asset-library) その特定のデータソースの画像と動画にフィルタされた画面が表示されます。アイコンは、データソースが少なくとも 1 回同期を完了するまで無効です。

任意のデータソースから同期されたすべての画像を表示するには、データソース一覧の下部にある「View Datasource Assets」をクリックします。このリンクは、少なくとも 1 つのデータソースが実行されると表示されます。

どちらのリンクも、あらかじめタグフィルターが設定されたアセットライブラリに移動するため、ワークスペースの画像のうちバケットミラーリングされた部分だけを閲覧、検索、管理できます。

## S3 互換ストレージ

データソースは、必要な S3 API 操作を実装している S3 互換ストレージプロバイダーで動作します。

これらのプロバイダーのいずれかを設定するには:

1. データソースの「Connection」タブで `S3` をプロバイダーとして選択します。
2. 通常どおりバケット名と認証情報を入力します。
3. プロバイダー独自の `エンドポイント` の URL。
4. リージョンを `auto` またはプロバイダー固有のリージョン値に設定します。

プロバイダーの S3 API エンドポイントを `エンドポイント`使用してください。CDN URL、公開バケット URL、またはブラウザのダウンロード URL は使用しないでください。

同じ glob パターンのフィルタリング、メタデータ サイドカーの動作、ミラー設定はこれらのプロバイダーでも機能します。

対応する S3 互換ストレージプロバイダーには次が含まれます:

| プロバイダー                                              | エンドポイントホスト名の例                                      |
| --------------------------------------------------- | -------------------------------------------------- |
| Cloudflare R2                                       | `<account-id>.r2.cloudflarestorage.com`            |
| Backblaze B2                                        | `s3.<region>.backblazeb2.com`                      |
| DigitalOcean Spaces                                 | `<region>.digitaloceanspaces.com`                  |
| Akamai Linode Object Storage                        | `<region>.linodeobjects.com`                       |
| Wasabi                                              | `s3.<region>.wasabisys.com`                        |
| Vultr Object Storage                                | `<region>.vultrobjects.com`                        |
| OVHcloud Object Storage                             | `s3.<region>.io.cloud.ovh.net`                     |
| Scaleway Object Storage                             | `s3.<region>.scw.cloud`                            |
| Open Telekom Cloud                                  | `obs.<region>.otc.t-systems.com`                   |
| Exoscale SOS                                        | `sos-<region>.exo.io`                              |
| IONOS Cloud Object Storage                          | `s3-<region>.ionoscloud.com`                       |
| IBM Cloud Object Storage                            | `s3.<region>.cloud-object-storage.appdomain.cloud` |
| Oracle Cloud Infrastructure Object Storage の S3 互換性 | `compat.objectstorage.<region>.oraclecloud.com`    |
| Seagate Lyve Cloud                                  | `s3.<region>.lyvecloud.seagate.com`                |
| Huawei Cloud OBS                                    | `obs.<region>.myhuaweicloud.com`                   |
| Alibaba Cloud OSS                                   | `oss-<region>.aliyuncs.com`                        |
| Tencent Cloud COS                                   | `cos.<region>.myqcloud.com`                        |
| Yandex Object Storage                               | `storage.yandexcloud.net`                          |
| Storj Hosted S3 Gateway                             | `gateway.storjshare.io`                            |
