【问题标题】:How to upload custom S3 metadata with Carrierwave如何使用 Carrierwave 上传自定义 S3 元数据
【发布时间】:2013-11-08 01:56:02
【问题描述】:

我想将Content-Disposition 标头添加到我使用carrierwave 上传的文件中(以后不能通过URL 中的查询参数来执行此操作)。

在上传文件之前,我可以在AttachmentUploader 模型中添加什么来帮助我完成此任务吗?

谢谢!

【问题讨论】:

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


    【解决方案1】:

    您可以在 Carrierwave 配置中全局设置属性 -

    CarrierWave.configure do |config|
      config.fog_attributes = {'Content-Disposition' => ...}
    end
    

    或者您可以在上传器类本身上定义它

    def fog_attributes
      {'Content-Disposition' => ...}
    end
    

    上传者上的方法可以使用上传者可访问的数据来确定fog_attributes的适当返回值

    【讨论】:

    • 谢谢!这真的很棒。它会自动调用fog_attributes,还是我需要从某个地方调用它?
    • 如果您在上传器上定义了该方法,Carrierwave 应该处理调用该方法。
    • 你太棒了——非常感谢。而且我意识到这对于 Stack Overflow 提出这样的要求有点不合情理,但是试图为 AWS+Fog+Carrierwave 寻求帮助是如此稀少,以至于我会尽我所能......你是否有任何洞察力以下? github.com/carrierwaveuploader/carrierwave/issues/1262
    • 所以我不知道确切的问题,但我知道如果格式是有效的子域与简单的存储桶名称,fog_directory 的行为会有所不同。这里似乎有一些相关信息 - stackoverflow.com/questions/12270007/…
    • 在此处查看 public_url 方法 - github.com/carrierwaveuploader/carrierwave/blob/master/lib/…。我认为您可以通过在雾配置中明确设置 :endpoint 来解决此问题。将端点设置为s3.amazonaws.com,这应该强制使用目录样式访问
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2012-12-20
    • 2012-12-06
    相关资源
    最近更新 更多