メインコンテンツにスキップ

Frame.io のストレージ接続:アセットの登録

Jared avatar
対応者:Jared
3か月以上前に更新

Storage Connect を使用すると、Frame.io のエンタープライズユーザーは、独自のクラウドストレージエンドポイントを Frame.io のバックアップストレージとして使用できます。現在、ユーザーが Frame.io にアセットをアップロードすると、アセットはアプリケーションスタックを通過し、Frame.io の Amazon S3 バケットに保存されます。同様に、アセットの再生と配信は、Frame.io が管理する Amazon S3 バケットから提供されます。

ユーザーは、自社の AWS S3 を信頼できるソースとして使用すると同時に、Frame.io を参照、検索、共有、レビュー用の単一サーフェスとして保持します。次のものを接続できるようになりました。

  • 1 つのプライマリ S3 バケット(読み取り/書き込み) - Frame.io からの新しいアップロードが保存される場所です。

  • 任意の数の追加 S3 バケット(読み取り‑専用) - S3 内の既存のメディアを Frame.io で表示および再生できます。オリジナルをコピーまたは複製する必要はありません。

Frame.io は軽量プロキシ(サムネイル、プレビュー、再生)を生成しますが、オリジナルは S3 に残ります。接続済みのバケットに既に存在するファイルを登録するには、V4 Public API:Import File エンドポイントを使用します。

メモ:このサービスは、Storage Connect を使用する Frame.io の新規ユーザーと既存ユーザーの両方にご利用いただけます。既存のお客様を支援するために、Frame.io は、Frame.io が管理する Amazon S3 バケットにこれまで保存されていた既存のお客様データを、お客様が管理する Amazon S3 バケットに 1 回限り移行し、一般的に利用できるようにします。

以下の情報は、Frame.io の新規ユーザーと既存ユーザーに、S3 バケットを Storage Connect と互換可能な構成にするための手順ガイドを提供することを目的としています。 

前提条件

  • 組織で Storage Connect が有効になっている Frame.io Enterprise アカウント。

  • AWS IAM 役割/ポリシーおよび S3 バケット権限を作成/アップデートするためのアクセス権。

  • Frame.io V4 Public API へのアクセス権(読み取り‑専用バケットから既存のオブジェクトを登録するために使用される Import File エンドポイント用)。

メモ:正確な IAM 信頼設定とアカウントマッピングについては、Frame.io の担当者(CSM/実装スペシャリスト)が現在の OIDC/役割設定を用意し、オンボーディング中に権限を検証します。

重要な概念

  • プライマリ(読み取り/書き込み)バケット:ユーザーが Frame にアップロードした際にオリジナルを受信する S3 バケット。ここでは Frame に読み取り + 書き込み権限が必要です。

  • 読み取り‑専用バケット:Frame が読み取りはできるが書き込みはできない 1 つ以上の S3 バケット。アセットは、Import File API を呼び出すことによって Frame 内に表示されるようになります(オリジナルはコピーされません)。

  • プロキシ:Frame は派生コンテンツ(サムネイル、プレビュー、ストリーミングプロキシ)を生成するので、オリジナルが S3 に残っている場合でも、アセットは Frame で再生できます。

パート A - プライマリ読み取り/書き込み S3 バケットを設定

  1. プライマリストレージとして使用する S3 バケットを選択または作成します。

  1. Frame.io の IAM 役割(Frame.io ID プロバイダーによって信頼されている)を作成し、バケット/プレフィックスへの読み取り/書き込み権を付与する IAM ポリシーをアタッチします。

  • ポリシースケルトンの例(ARN を置き換え、可能な場合は必要なプレフィックスに制限します):

{ 
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListPrimaryBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::YOUR_PRIMARY_BUCKET"
},
{
"Sid": "RWPrimaryObjects",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject",
"s3:AbortMultipartUpload",
"s3:ListMultipartUploadParts"
],
"Resource": "arn:aws:s3:::YOUR_PRIMARY_BUCKET/*"
}
]
}
  1. Frame.io に詳細情報(IAM 役割 ARN、バケット名、任意の優先オブジェクトプレフィックス)を提供します。Frame.io はマッピングを完了し、Frame 内のユーザーからのアップロードがこのバケットをターゲットにするようになります。

  2. Frame でテストアップロードを実行して検証し、オリジナルが S3 に保存され、プロキシが Frame に表示されることを確認します。

パートB - 1 つ以上の読み取り‑専用 S3 バケットを追加

追加の S3 バケットを読み取り‑専用ソースとして関連付けることができます。Frame はプロキシ生成と再生のためにオブジェクトを読み取りますが、これらのバケットに新しいオブジェクトを書き込みません。

  1. Frame で公開する追加の S3 バケット(およびオプションのフォルダープレフィックス)を選択します。

  2. 各バケット/プレフィックスへの読み取り‑専用アクセス権を付与するために Frame で使用される IAM 役割を作成(またはアップデート)します。

  • バケットごとのポリシースケルトンの例(ARN/プレフィックスを調整し、バケットごとに追加します):

{  
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListReadOnlyBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::YOUR_RO_BUCKET"
},
{
"Sid": "ReadObjects",
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:GetObjectVersion"],
"Resource": "arn:aws:s3:::YOUR_RO_BUCKET/*"
}
]
}
  1. Frame.io に詳細情報(同じ役割 ARN(またはバケットごとに異なる ARN)、各バケット名および読み取り‑専用として公開する必要があるオプションのプレフィックス)を提供します。

  2. Import File API(下記)を使用して、これらの読み取り‑専用バケットから既存のファイルを登録します。

パート C - Frame 内の既存の S3 オブジェクトを登録(Import API)

読み取り‑専用バケットを追加すると、メディアは既に S3 に保存されます。Import File エンドポイントを使用して、オリジナルをコピーせずに、S3 オブジェクトを Frame プロジェクト/フォルダーに登録します。

読み込みの機能

  • Frame 内に S3 オブジェクトを指すファイルアセットを作成します。

  • Frame をトリガーし、参照/再生用のプロキシを生成します。

  • のファイルは S3 内にそのまま残します。

API を呼び出す前に

  • Storage Connect マッピングが完了していることを確認します(Frame.io には役割 ARN、バケット、プレフィックスがあります)。

  • 必要なファイルスコープを持つ OAuth トークンを用意します。

  • 読み込んだファイルが表示される Frame 内の宛先コンテナ(プロジェクトルートまたはフォルダーアセット ID)を識別します。

  • 読み込む S3 バケットオブジェクトキーを識別します。

例(擬似コード cURL)

正確なパスとフィールドについて詳しくは、公式 API リファレンスを使用してください。以下の構造はその意図を示しています。

# 擬似コード - 正確な URL とスキーマについて詳しくは、「Import File」エンドポイントのドキュメントを参照してください。

curl -X POST "https://api.frame.io/v4/files.import_file" \ 
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"container_id": "<FRAME_FOLDER_OR_PROJECT_ASSET_ID>",
"external": {
"provider": "s3",
"bucket": "my-readonly-bucket",
"key": "Marketing/2025/hero.mov"
},
"display_name": "hero.mov"
}'

Frame で確認

  • 宛先プロジェクト/フォルダーを開く - 読み込んだファイルは他のアセットと同じように表示されます。

  • プロキシの生成が完了すると、すぐに再生が可能になります。

  • アセットの詳細をチェックして、保存場所が S3 であることを確認します。

動作とメモ

  • Frame クライアント(web iOS、転送アプリなど)へのアップロードは、プライマリ読み取り/書き込みバケットに送信されます。

  • 読み取り‑専用バケットから読み込んだアセットはそのまま残ります。Frame でアセットを削除しても、読み取り‑専用バケット内のオリジナルは削除されません(読み取り/書き込みバケットに関する組織の削除ポリシーを適用してください)。

  • ライフサイクル/アーカイブ:オブジェクトが Glacier に移動した場合や、一時的に使用できなくなった場合でも、以前に生成したプロキシによって引き続き参照できる場合があります。オリジナルのデータを取得できるかどうかは、S3 の階層と可用性によって異なります。

トラブルシューティング

  • 読み込み/再生時に 403/AccessDenied が発生する → IAM ポリシーにオブジェクト ARN の s3:GetObject が含まれていることを確認してください。

  • オブジェクトが検出されない → バケット/プレフィックスのマッピングが、読み込むオブジェクトキーと一致していることを確認してください。

  • プロキシが生成されない → ファイルタイプがサポートされ、IAM が読み取りを許可していることを確認してください。一時的な S3 エラーが発生していないか確認してください。

  • 一括読み込み時にレート制限がある → 指数バックオフによる再試行を追加し、同時実行性を制限してください。

よくある質問

Q:読み取り‑専用バケットを追加できる数はいくつですか?

A:任意の数です。各バケット(およびオプションのプレフィックス)を読み取り‑専用権限でマッピングします。

Q:既存のライブラリを Frame に移動またはコピーする必要がありますか?

A:いいえ。Import File API を使用してその場で登録します。

Q:後でバケットを削除できますか?

A:はい。読み取り‑専用バケットを削除すると、これらのアセットは Frame から非公開になります(オリジナルは S3 に残ります)。

Q:Frame は読み取り‑専用バケットに書き込むことはありますか?

A:いいえ。Frame はオブジェクトを読み取り、必要に応じてプロキシを生成し、オリジナルをストリーミングします。書き込みはプライマリ読み取り/書き込みバケットに対してのみ行われます。

関連リンク

このガイドでは、最新の Storage Connect 機能について説明します。1 つのプライマリ読み取り/書き込みバケットと複数の読み取り‑専用バケットがあり、Import File API 経由で登録することで、オリジナルを複製せずに Frame で作業できるようになります。

重要な制限事項:現時点では、SSE‑KMS で暗号化されたバケット/オブジェクトは Storage Connect ではサポートされていません

こちらの回答で解決しましたか?