使用完全控制访问权限并成为存储桶和对象的所有者,请求格式如下:
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?
答案 0 :(得分:3)
由于复制操作使用POST(而不是PATCH),因此如果提供任何元数据值,则必须为目标对象提供有效的对象资源。这意味着您发送的对象资源需要包含所有必填字段,即使您没有从源中更改它们。
不幸的是,文档不清楚需要哪些字段,错误消息也没有用。
除了ACL之外,请尝试填写“name”,“bucket”和“contentType”字段,它应该可以正常工作。