文件上传常见报错及解决方法

更新时间:2024-08-02 19:51:05

HTTP状态码:405

MethodNotAllowed

错误信息:The specified method is not allowed against this resource.

问题原因:使用了不支持的请求方法。

解决方法:请采用 PUT 请求方法再次重试。

HTTP状态码:400

InvalidDigest

错误消息:The Content-MD5 you specified was invalid.

错误原因:PUT上传时请求头中的 Content-MD5 值与OSS服务端通过Body体中文件流所计算的Content-MD5值不一致。

解决方法:请检查PUT时请求头中 Content-MD5 值与上传的文件流是否一致。

HTTP状态码:403

SignatureDoesNotMatch

错误消息:The request signature we calculated does not match the signature you provided.Check your key and signing method.

问题原因:签名错误。

解决方法:

  • 请检查是否错误使用了GET请求或DELETE请求,请采用 PUT 请求方法再次重试。
  • 请求时传入的文件二进制字节流是否与之前计算 contentMd5 值时使用的文件二进制字节流一致。
  • 请检查PUT方法上传时请求头中 Content-MD5 值与“获取文件上传地址”接口Body体中传入的 contentMd5 还有 OSS服务端通过Body体中文件流所计算的Content-MD5值 三者是否一致,请确保三者一致。
  • 请检查请求头中的 Content-Type 参数是否和“获取文件上传地址”接口Body体中的 contentType 参数是否一致(application/octet-streamapplication/pdf),请确保两者一致。

AccessDenied 报错

错误消息:Request has expired.

问题原因:文件上传链接已过期。

解决方法:请重新获取文件上传链接。

错误消息:Query string authentication requires the Signature,Expires and OSSAccessKeyId parameters.

问题原因:文件上传链接URL中缺少必要参数。

解决方法:请检查文件上传链接URL中的Signature、Expires和OSSAccessKeyId参数是否正确。


错误消息:You have no right to access this object because of bucket acl.

问题原因:没有该Object的访问权限。

解决方法:请检查文件上传链接URL中OSSAccessKeyId或Signature参数拼写不正确,是否含有转义字符。

例如:

Url中的是否包含OSSAccessKeyId参数和Signature参数以及是否拼写正确或携带转义符。

例如:

&OSSAccessKeyId=XXX

&Signature=hBEuUHA

携带转义符的Url

正确的Url(去掉转义符)

InvalidAccessKeyId报错

错误消息:The OSS Access Key Id you provided does not exist in our records.

问题原因:AccessKey ID不存在或已失效。

解决方法:请检查文件上传链接URL中security-token参数是否完整或是否含有转义字符。

例如:

Url中的是否包含security-token参数以及是否拼写正确或携带转义符。

例如:

&security-token=XXX

携带转义符的Url

正确的Url(去掉转义符)

我要纠错