【问题标题】:Attempt to copy an object and set ACL fails尝试复制对象并设置 ACL 失败
【发布时间】:2014-01-03 04:58:37
【问题描述】:

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

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 的问题?

【问题讨论】:

    标签: google-cloud-storage


    【解决方案1】:

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

    很遗憾,文档并不清楚需要哪些字段,错误信息也无济于事。

    尝试在 ACL 之外填写“name”、“bucket”和“contentType”字段,应该可以了。

    【讨论】:

    • "contentType" 做到了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多