チャット

アップロード用の署名付き URL を発行

POST/chat-rooms/:roomId/files/upload-url

ファイルは API を経由せず S3 へ直接アップロードします。この API が返す uploadUrl に対して、requiredHeaders をそのまま付けて PUT してください。Authorization ヘッダは付けないこと(署名が壊れます)。アップロード後に POST /chat-rooms/:roomId/files で登録します。上限は 10MB です。

認証要ログイン

パスパラメータ

roomIdstring必須

チャットルーム ID。

リクエストボディ

fileNamestring必須

ファイル名(255 文字まで)。

mimeTypestring必須

MIME タイプ。PUT の Content-Type と一致させること。

sizenumber必須

バイト数(10MB まで)。実サイズは登録時にサーバーが検証します。

レスポンス

フィールド型説明
uploadUrlstringS3 への署名付き PUT URL。Authorization ヘッダは付けないこと。
uploadKeystringアップロード先のキー。登録時に指定する。
expiresInnumberURL の有効秒数。
requiredHeadersRecord<string, string>PUT にそのまま付けるヘッダ。過不足があると署名が合わない。
リクエスト
curl https://api.4s.link/chat-rooms/ROOM_ID/files/upload-url \
-X POST \
-H "Authorization: Bearer 4s_at_..." \
-H "Content-Type: application/json" \
-d '{
"fileName": "report.pdf",
"mimeType": "application/pdf",
"size": 1234567
}'
レスポンス例
{
"uploadUrl": "https://.../chat-file-uploads/...?X-Amz-Signature=...",
"uploadKey": "chat-file-uploads/r1a2b3c4-.../a1b2c3d4-.../....pdf",
"expiresIn": 300,
"requiredHeaders": { "Content-Type": "application/pdf", "Content-Length": "1234567" }
}