Blob Storage へのファイルアップロード
POST /v1/objects で最大 100 MB のファイルを Blob Storage にアップロードします: 公開またはプライベート、有効期限、キャッシュ、メタデータ、チェックサムのオプション付き。
オブジェクトのアップロードは 1 つのファイルをアップロードし、その
id と、公開ファイルの場合は埋め込みや直接共有に使える CDN の url を返します。プラットフォームでホストされているアプリケーションの添付ファイル、生成されたエクスポート、ユーザーがアップロードしたメディアを支えるエンドポイントです。
1 回のリクエストで受け付けるファイルは 512 バイトから 100 MB までです。それより大きい 10 GiB までのファイルは、チャンクアップロードのフローまたは S3 ゲートウェイを使用します。blob:write スコープ、または Authorization で送信されるアップロードトークンと、有効なプランが必要です。
返される
id は不透明な値として扱ってください: 受け取ったまま保存し、他のルートにそのまま送り返します。pub/ または prv/ で始まり、ファイルの公開範囲や有効期限が変わると変化することがあります。2026年9月のアップデート以前に保存されたレガシーファイルは、この接頭辞のない id を保持し、すべてのルートが両方を受け付けます。パラメーター
file
必須
FormData (
実際のファイル名を送信してください: 保存される拡張子はそこから取得されます (
multipart/form-data) を使用し、1 リクエストにつきファイルはちょうど 1 つです。実際のファイル名を送信してください: 保存される拡張子はそこから取得されます (
reads.fastq.gz は .fastq.gz のままです)。string
必須
拡張子を除いたファイル名。1〜128 文字: 英字、数字、
_、.、- を使用でき、英字、数字、_ のいずれかで始まる必要があります。.. を含めることはできません。string
ファイルのフォルダーパス。
/ で区切られた最大 8 セグメント、合計 256 文字までです。各セグメントは name と同じパターンに従い、最大 64 文字です。末尾の / は無視されます。boolean
デフォルト:"false"
true にすると、公開 URL なしでファイルを保存します。オブジェクトのダウンロード、共有リンク、または S3 ゲートウェイを通じて読み取ります。省略した場合はプレフィックスのルールによって決まります。string
この期間の経過後にファイルを自動的に削除します: 日数は
30 または 30d、時間は 6h です。1 時間から 1825 日 (5 年) まで指定できます。7 日未満の有効期限には Enterprise プランが必要です。省略した場合はプレフィックスのルールによって決まります。boolean
デフォルト:"false"
true にすると名前にランダムな接尾辞が追加されるため、URL を推測されることがなく、新しいアップロードが古いファイルを置き換えることもありません。プライベートファイルには常に付与されます (private=true と一緒に false を指定すると拒否されます)。boolean
デフォルト:"true"
セキュリティハッシュがない場合、同じ名前とプレフィックスでの新しいアップロードはファイルを置き換えます。
false にすると、代わりに 409 OBJECT_ALREADY_EXISTS で拒否されます。string
inline (ブラウザで開く) または attachment (元のファイル名でダウンロード)。boolean
デフォルト:"false"
true にすると、ファイルの種類にかかわらず、ブラウザはファイルを開かずにダウンロードします。string
CDN とブラウザがファイルを保持する期間:
immutable (1 年)、N が 60〜31536000 秒の max-age=N、または no-cache (すべての読み取りがストレージに届きます。Enterprise のみ)。セキュリティハッシュ付きのファイルのデフォルトは immutable です。キャッシュがファイルの有効期限より長く残ることはありません。string
文字列値からなる JSON オブジェクトで、オブジェクト情報で返されます。キーには
a-z、0-9、- を使用します (最大 64 文字)。最大 5 キー、合計 512 バイトまでです。Pro と Enterprise のみ。string
ファイルの SHA-256。一致しない場合、アップロードは
CHECKSUM_MISMATCH で拒否され、何も保存されません。レート制限と同時実行
- 各アカウントで同時に実行中にできるアップロードは最大 4 件です (
TOO_MANY_CONCURRENT_UPLOADS、429)。 - Hobby と Standard プランは 1 秒あたり 1 件のアップロードに制限されます (
RATE_LIMITED、429)。Pro と Enterprise は対象外です。 - アカウントに含まれるストレージを超えるアップロードは
STORAGE_QUOTA_EXCEEDEDで拒否されます。
ファイル形式
登録済みの MIME タイプがない形式 (.bam、.vcf、.fasta、.parquet、.h5、.npy など) を含め、事実上あらゆる拡張子を受け付けます。
- 配信される
Content-Typeは、拡張子からサーバー側で決定されます。不明な形式はapplication/octet-streamとして配信されます。 - ブラウザがレンダリングする形式 (
.html、.svg、.xmlなど) は常にダウンロードとして配信されます。 - 実行ファイルとインストーラーは
BLOCKED_FILE_TYPEで拒否されます:exe、msi、dll、bat、cmd、com、scr、cpl、pif、hta、vbs、vbe、jse、wsf、wsh、msc、reg、lnk、sys、drv、ps1、apk、xpi。 - プレフィックスのルールまたはアップロードトークンで、受け付ける拡張子とサイズを制限できます。
レスポンス
string
成功した場合は “success”、失敗した場合は “error” です。
object
エラー
完全な一覧はエラーを参照してください。
関連項目
- Blob SDK:
blob.put()

