我目前使用带有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
错误?