gpt4 book ai didi

ruby-on-rails - 基于 request.ssl 通过 HTTPS 动态提供文件?附附件

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:59 25 4
gpt4 key购买 nike

我看到 attachment_fu 中有一个 :user_ssl 选项,它检查 amazon_s3.yml 文件以便通过 https://

提供文件

在 s3_backend.rb 中你有这个方法:

    def self.protocol
@protocol ||= s3_config[:use_ssl] ? 'https://' : 'http://'
end

但这会使它使用 SSL 为所有 s3 附件提供服务。我想根据当前请求是否使用 https://即使其动态化:

  if request.ssl?
@protocol = "https://"
else
@protocol = "http://"
end

如何让它以这种方式工作?我尝试修改方法,然后得到 NameError: undefined local variable or method `request' for Technoweenie::AttachmentFu::Backends::S3Backend:Module 错误

最佳答案

问题是您正在修改的方法 (Technoweenie::AttachmentFu::Backends::AWS::S3.protocol) 是静态的,无法访问文件或请求问题。您要修改的是 Technoweenie::AttachmentFu::Backends::AWS::S3#s3_url(thumbnail)。你必须添加一个选项参数,这样你的 Controller 就可以传入它是否需要 SSL,因为这个模型级包不理解 Controller 级问题,比如“当前请求”(也不应该理解)。

不过,真正的答案是“您可能不想这样做”。如果客户说“我们有一个免费增值模式,其中只有我们的付费客户可以通过 SSL 传输他们的照片”,您应该反驳:“实际上更难削弱 SSL 文件传输,而且它是很可能只是在路上引入错误。让我们考虑提供另一种免费增值选项。”如果客户真的不在乎,您不妨为所有上传打开 SSL。

关于ruby-on-rails - 基于 request.ssl 通过 HTTPS 动态提供文件?附附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1388677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com