Ruby Fog + Google Cloud Storage:来自put_object_url的签名URL生成InvalidPolicyDocument

时间:2017-01-12 03:32:07

标签: ruby google-cloud-storage fog fog-google

我目前使用带有paperclip的Google云端存储进行图片上传。一切正常,我的凭据有效。

我现在希望在Google云端存储上生成一个已签名的网址,以便提供给用户。

首先我创建一个存储对象:

storage = Fog::Storage.new(
        provider: "Google",
        google_storage_access_key_id: "KNOWN_GOOD_ID",
        google_storage_secret_access_key: "KNOWN_GOOD_KEY")

然后我创建了URL:

storage.put_object_url("MY_BUCKET",
        "RANDOM_NAME.jpg",
        1.hour,
        'Content-Type' => 'image/jpeg')

返回https://storage.googleapis.com/MY_BUCKET/RANDOM_NAME.jpg?GoogleAccessId=REDACTED&Signature=REDACTED&Expires=3600

过去,如果我暂时启用AllUsers:W(暂时!),我可以将二进制图像(通过Postman API客户端)发布到此存储桶。

但是,当我尝试将jpeg文件暂时发布到存储桶时,我收到此错误:

<?xml version='1.0' encoding='UTF-8'?>
<Error>
    <Code>InvalidPolicyDocument</Code>
    <Message>The content of the form does not meet the conditions specified in the policy document.</Message>
    <Details>Missing policy</Details>
</Error>

如何解决此Missing policy错误?

0 个答案:

没有答案