1

我目前使用 Google Cloud Storagepaperclip来上传图片。一切正常,我的凭据有效。

我现在希望在 Google Cloud Storage 上生成一个签名 URL 以提供给用户。

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

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错误?

4

0 回答 0