この例では、CWSANDBOX_API_KEY に設定した CoreWeave API アクセストークンを使用します。Forge APIキーによる認証については、はじめにを参照してください。CKS の要件については、配置モードを参照してください。
このガイドでは、CWSandbox クライアントを使用して CoreWeave サンドボックス インスタンス内でファイルを読み書きおよび管理する方法を説明します。サンドボックス内外でデータを移動するワークフローを構築する開発者を対象としており、並列アップロードとダウンロード、エラー処理、大規模ファイルのパターンなどが含まれます。
基本操作
このセクションの例では、最も一般的なファイル操作を扱っています。サンドボックス内のパスへのデータの書き込みと、データの読み戻しです。ファイル操作は OperationRef オブジェクトを返します。.result() を使用して完了をブロックします。
ファイルを書き込む
ファイルの読み取り
並列操作
ファイル操作はすぐに戻るため、自然に並列度を高められます。独立したファイルが複数ある場合、アップロードやダウンロードを並列に実行すると、全体の転送時間を短縮できます。
並列アップロード
並列ダウンロード
アップロード・処理・ダウンロードのパターン
一般的なワークフローでは、入力ファイルをアップロードし、処理を実行して、結果をダウンロードします。
エラー処理
ファイル操作は、パスが存在しない場合や書き込み可能でない場合に失敗する可能性があります。これらのケースを処理し、影響を受けるパスを検査するには、SandboxFileError をキャッチします。
ファイルが見つかりません
書き込みエラー
バイナリファイル
ファイル操作では、画像やシリアライズされた Python オブジェクトなど、あらゆるバイナリコンテンツを扱えます。
信頼できるソースのデータのみを unpickle してください。pickle ファイルを読み込むと、任意のコードが実行される可能性があります。
テキストのエンコーディング
ファイルはバイト列として転送されるため、非 ASCII 文字の文字化けを防ぐには、テキストを明示的にエンコードおよびデコードする必要があります。
大きなファイルに関する考慮事項
read_file および write_file API は、小規模から中規模のファイルに適しています。大きなファイルを扱う場合は、次の点を考慮してください。
- ファイルは API を介して転送されるため、帯域幅を考慮してください。
- 大規模なデータセットには、可能な限りストリーミングを使用してください。
- API を介してデータを転送せず、オブジェクトストレージに直接アクセスしてください。
object_storage_access パラメーターは、一時的な CoreWeave AI Object Storage の認証情報を作成し、サンドボックスのコンテナーに提供します。これにより、ワークロードはバケットを直接読み書きできるため、大きなオブジェクトが read_file や write_file を経由することはありません。事前に、組織でサンドボックスのコントロールプレーンに Workload Identity Federation の設定を登録しておく必要があります。詳しくは、オブジェクトストレージへのアクセスを参照してください。
次の例では、CoreWeave 認証を使用して 1 つのバケットへの読み書きアクセス権を持つサンドボックスを起動し、認証情報が注入されたことを確認します。CWSANDBOX_API_KEY に設定済みの組織の CoreWeave API アクセストークンを設定し、[BUCKET-NAME] をご使用のバケット名に置き換えてください。
サンドボックスには、AWS SDK がコンテナー認証情報の取得時に読み取る環境変数が設定されているため、サンドボックス内の S3互換クライアントは明示的にキーを指定しなくても動作します。これらの変数と Boto3 の例については、サンドボックス内で認証情報を使用するを参照してください。
認証情報の適用範囲を特定のキー接頭辞に限定するには、object_prefix を使用します。データの読み取りのみを行うワークロードには、ObjectStoragePermission.READ を使用します。
サンドボックス内でのみ使用する大容量の一時データには、代わりにボリュームをアタッチしてください。詳しくは Volumes を参照してください。