0006-00000114

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

问题描述

PostObject请求中x-oss-object-acl表单域的值不合法。

问题原因

您发起了PostObject请求上传文件,但是请求体中x-oss-object-acl表单域的值不合法,导致请求报错。x-oss-object-acl表单域的值仅支持defaultprivatepublic-read或者public-read-write

问题示例

以下请求体中x-oss-object-acl表单域的值为abc,取值不合法导致请求错误。

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="key"
big.img
------WebKitFormBoundaryW0DET1iaBMeAOBg3
Content-Disposition: form-data; name="x-oss-object-acl"
abc
------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--

解决方案

确保请求体中x-oss-object-acl表单域取值合法。该请求头用于指定Object的读写权限。取值如下:

  • default(默认值):Object遵循Bucket的读写权限,即Bucket是什么权限,Object就是什么权限。

  • private:只有Object的拥有者可以对该Object进行读写操作,其他人无法访问该Object。

  • public-read:只有该Object的拥有者可以对该Object进行写操作,任何人(包括匿名访问者)都可以对该Object进行读操作。

    警告

    互联网上任何用户都可以对该Object进行访问,这有可能造成您数据的外泄以及费用激增,请谨慎操作。

  • public-read-write:任何人(包括匿名访问者)都可以对该Object进行读写操作。

    警告

    互联网上任何用户都可以对该Object进行访问,并且向该Object写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可能会侵害您的合法权益。除特殊场景外,不建议您配置公共读写权限。

当请求头和文件表单域中同时指定x-oss-object-acl时,文件表单域中设置的访问权限的优先级高于请求中设置的访问权限。

关于访问权限的更多信息,请参见Object ACL

相关文档