0

我在使用新的carrierwave_direct gem将文件上传到 s3 时遇到了一个小问题

我已按照安装和设置carrierwave_direct 的说明进行操作,但是当我尝试上传到s3 时,上传开始,然后在某个时间点暂停上传。有什么想法吗?

有时我也会从 s3 收到此消息:

<Error>
    <Code>InvalidPolicyDocument</Code>
    <Message>
        Invalid Policy: Invalid 'expiration' value: '2011-09-13T07:52:58+02:00'
    </Message>
    <RequestId>"some id"</RequestId>
    <HostId>
        "some host id"
    </HostId>
</Error>

我创建了一个名为 carrierwave.rb 的初始化文件,其中包含我来自 amazon s3 的所有凭据。我还加载了所有必需的 gem(carrierwave_direct、fog、carrierwave)

在 gist 上查看我的代码

有没有其他人能够得到这个工作

感谢您的帮助

4

2 回答 2

0

我会尝试从您的 carrierwave_fog.rb 配置中删除这一行:

config.fog_attributes = {'Cache-Control'=>'max-age=315576000'}  # optional, defaults to {}

听起来您的文档到期日期无效,因为它太接近当前日期/时间。

此外,您可能需要#storage :fog在 ImageUploader 中取消注释您的行。看看是否有帮助。

于 2011-09-13T15:12:28.327 回答
0

这个 gem 的作者发现问题出在 rails 3.0.x 版本,要使这个 gem 工作,你需要在config/application.rb 中添加以下行:

config.action_controller.allow_forgery_protection = false

并从我的config/initilizers中的 carrierwave.rb 文件中删除以下内容:

config.fog_host       = 'https://#{fog_directory}.s3.amazonaws.com'

因为这将由雾目录自动确定。

作者还提到,如果您使用的是 rails 3.1.x,则不需要执行上述步骤。希望这可以帮助

于 2011-09-15T07:45:05.527 回答