問題の説明
リクエストボディ内で file フィールドより前に配置されたフォームフィールドの値の合計サイズが 8 MB を超えると、PostObject リクエストが失敗します。
原因
リクエストボディ内で file フィールドより前に配置されたすべてのフォームフィールドの値の合計サイズが 8 MB を超える場合、OSS はそのリクエストを拒否し、エラーを返します。
例
以下のリクエストには、filed1~filed5 の 5 つの file 前フィールドが含まれており、各フィールドに 2 MB のデータが格納されています。合計で 10 MB となり、8 MB の制限を超えています。
POST / HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length: 6443500495
Date: Sat, 18 Feb 2023 05:17:02 GMT
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryW0DET1iaBMeAOBg3
Host: example-bucket.oss-cn-hangzhou.aliyuncs.com
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="filed1"
xxx...(Characters that are 2 MB in size are omitted here.)...xxx
Content-Disposition: form-data; name="filed2"
xxx...(Characters that are 2 MB in size are omitted here.)...xxx
Content-Disposition: form-data; name="filed3"
xxx...(Characters that are 2 MB in size are omitted here.)...xxx
Content-Disposition: form-data; name="filed4"
xxx...(Characters that are 2 MB in size are omitted here.)...xxx
Content-Disposition: form-data; name="filed5"
xxx...(Characters that are 2 MB in size are omitted here.)...xxx
Content-Disposition: form-data; name="name"
big.img
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="key"
${filename}
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="policy"
eyJleHBpcmF0aW9uIjoiMjAyMy0wMi0xOFQxMzoxOTowMC4wMDBaIiwiY29uZGl0aW9ucyI6W1siY29udGVudC1sZW5ndGgtcmFuZ2UiLDAsMTA0ODU3NjAwMF1dfQ==
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="OSSAccessKeyId"
LTAI****************
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="success_action_status"
200
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="signature"
miAoLVohS5*****WEXyC3wVecaQ=
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="file"; filename="big1.img"
Content-Type: application/octet-streamソリューション
file フィールドより前に配置されたすべてのフォームフィールドの値の合計サイズを 8 MB 未満に保ってください。
関連資料
PostObject — PostObject 操作の API リファレンス
JavaScript を使用してクライアント側で署名を追加し、OSS にデータをアップロードする方法 — Web クライアントからフォームアップロードを使用して OSS にデータを転送する方法
PostObject エラーのトラブルシューティング — PostObject 操作における一般的なエラーとその修正方法