尝试复制对象并设置ACL失败

时间:2014-01-02 20:15:40

标签: google-cloud-storage

使用完全控制访问权限并成为存储桶和对象的所有者,请求格式如下:

POST https://www.googleapis.com/storage/v1beta2/b/mybucket/o/myobject/copyTo/b/mybucket/o/copiedobject?key={YOUR_API_KEY}

Content-Type:  application/json
X-JavaScript-User-Agent:  Google APIs Explorer

{
    "acl": [
        {
            "role": "READER",
            "entity": "allUsers"
        }
    ]
}

因以下回复而失败:

{
    "error": {
        "errors": [
            {
                "domain": "global",
                "reason": "required",
                "message": "Required"
            }
         ],
         "code": 400,
         "message": "Required"
    }
}

使用相同的ACL上传新对象。在不设置ACL的情况下复制对象并随后添加ACL也可以。

问题出在我的最后还是API?

1 个答案:

答案 0 :(得分:3)

由于复制操作使用POST(而不是PATCH),因此如果提供任何元数据值,则必须为目标对象提供有效的对象资源。这意味着您发送的对象资​​源需要包含所有必填字段,即使您没有从源中更改它们。

不幸的是,文档不清楚需要哪些字段,错误消息也没有用。

除了ACL之外,请尝试填写“name”,“bucket”和“contentType”字段,它应该可以正常工作。