问题描述
通过PostObject上传的文件大小超出接口限制。
问题原因
可能原因如下:
您通过PostObject接口上传了大小超过5 GB的文件,但是接口要求上传的文件大小不能超过5 GB。
Post请求的Policy表单域为一段经过UTF-8和Base64编码的JSON文本,声明了Post请求必须满足的条件。其中Conditions是一个列表,用于指定Post请求的表单域的合法值。其中content-length-range规定了上传Object的最小和最大允许大小,单位为字节。如果您上传的文件大小超出了该字段规定的大小范围,也会导致该错误。
问题示例
以下请求上传的big.img文件大小超过5 GB。
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="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"
LTAI5tMw****
------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="big.img"
Content-Type: application/octet-stream
***
------WebKitFormBoundaryW0DET1iaBMeAOBg3--
解决方案
确保PostObject请求上传的文件大小不超过5G。
如果PostPolicy中存在content-length-range字段,您需要确保上传的Object的大小在允许范围内。
相关文档
关于PostObject接口的更多信息,请参见PostObject。
关于Web端表单直传OSS的示例,请参见JavaScript客户端签名直传。
关于调用PostObject接口的常见错误及解决方法,请参见Post Object错误及排查。
文档内容是否对您有帮助?