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

Google cloud storage 尝试复制对象并设置ACL失败,google-cloud-storage,Google Cloud Storage,使用完全控制访问并作为bucket和object的所有者,请求的形式如下: 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 { "ac

使用完全控制访问并作为bucket和object的所有者,请求的形式如下:

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也可以


问题出在my end还是API上?

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

不幸的是,文档不清楚哪些字段是必需的,错误消息也没有帮助

尝试在ACL之外填充“名称”、“bucket”和“contentType”字段,它应该可以工作。

“contentType”完成了。谢谢