上传到s3时上传静默失败/暂停新的carrierwave_direct gem

时间:2011-09-13 08:58:38

标签: ruby-on-rails-3 amazon-s3 carrierwave fog

我在使用新的 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的所有凭据。我还加载了所有必需的宝石(carrierwave_direct,fog,carrierwave)

结帐我的代码 here on gist

是否还有其他人能够正常工作

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分: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,则无需执行上述步骤。希望这有帮助

相关问题