首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails +回形针+机架空间CloudFiles,带专用CDN

Rails +回形针+机架空间CloudFiles,带专用CDN
EN

Stack Overflow用户
提问于 2014-04-04 02:56:26
回答 2查看 624关注 0票数 1

我有一个Rails应用程序,它使用Paperclip来处理上传的文件,我们目前是由Rackspace托管的。

该应用程序目前托管在单个服务器上,我正在构建一个具有负载平衡器、应用程序服务器和独立数据库服务器的更具伸缩性的解决方案。我需要做的最后一件事是为上传的资产提供解决方案。我试过使用Rackspace的CloudFiles,但似乎使用回形针和CloudFiles的唯一方法是将它们放在公共CDN上,而我不能使用,用户需要经过身份验证才能访问这些文件。在我转向亚马逊S3之前,由于他们有临时URL的选项,您是否知道如何将CloudFiles与纸夹一起使用并要求身份验证才能访问文件?

任何帮助,提示,谷歌搜索,链接,或解决方案将非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2014-04-04 04:56:40

碰巧的是,云文件also supports临时URL和it appears that Paperclip does allow you to make use of it的生成。只需在视图中使用#expiring_url而不是#urlAttachment生成URL:

代码语言:javascript
复制
= image_tag @organization.logo.expiring_url(Time.now.to_i + 100, :original).gsub(/^http:/, "https")

回形针将only generate http urls,但由于Rackspace的临时URL在校验和中不使用该方案,您可以使用gsub调用将其转换为https URL。另外,请注意,#expiring_url的第一个参数是一个绝对时间戳(从纪元开始的秒数)。

Rackspace的过期URL是最近才进入fog的-- v1.18.0 --所以如果您使用的是较旧的版本,您可能需要升级fog才能利用它们:

代码语言:javascript
复制
bundle upgrade fog

回形针还支持generating obfuscated URLs,这看起来很有趣,但安全性较低,因为服务器不会使其过期。

票数 1
EN

Stack Overflow用户

发布于 2014-08-11 13:32:58

您可以像这样添加密钥:

代码语言:javascript
复制
class Rackspace

  def self.add_temp_url_key
    require 'fog'

    puts "Creating Storage Service"

    begin
      service = Fog::Storage.new(
        :provider => 'rackspace',
        :rackspace_username => ENV['FOG_USERNAME'],
        :rackspace_api_key => ENV['FOG_API_KEY'],
        :rackspace_region => ENV['RACKSPACE_REGION'].to_sym
      )

      service.post_set_meta_temp_url_key(ENV['RACKSPACE_TEMP_URL_KEY'])
      puts "X-Account-Meta-Temp-Url-Key successfully set to #{ENV['RACKSPACE_TEMP_URL_KEY']}"

    rescue => e
      puts "Unable to set X-Account-Meta-Temp-Url-Key - #{e.inspect}"
      puts e.backtrace
    end
  end

end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22846512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档