ファイルアップロードAPI
音声・ビデオ・画像をGraphQL APIから直接アップロードできます。小さいファイルは単一PUT、大容量ファイルはS3互換のマルチパートアップロードを使います。
対応形式と上限
- ビデオ: MP4、MOV、WebM
- 単一PUT: 5GB未満
- マルチパート: 1バイト以上100GB以下
- 署名付きURL: 発行から12時間
- マルチパートセッション: 開始から48時間
単一PUT
createPresignedUploadUrlでURLを発行し、返されたuploadUrlへファイルをPUTします。アップロード後、pathをエピソード作成APIやビデオストックAPIへ渡します。
mutation {
createPresignedUploadUrl(
fileName: "episode.mp4"
type: VIDEO
contentType: "video/mp4"
) {
uploadUrl
path
}
}
大容量マルチパート
createMultipartUploadでアップロードを開始します。createMultipartUploadPartUrlsで最大100パートずつPUT先を取得します。- 各パートをPUTし、レスポンスの
ETagを保存します。 - 全パートを
completeMultipartUploadへ渡します。 - 返された
pathをビデオストックAPIなどへ渡します。
mutation Start($fileSize: BigInt!) {
createMultipartUpload(
fileName: "large-episode.mp4"
type: VIDEO
contentType: "video/mp4"
fileSize: $fileSize
) {
uploadId
path
partSize
partCount
}
}
未完了のpathは後続APIでは利用できません。失敗・キャンセル時はabortMultipartUploadを呼び出してください。