代码之家  ›  专栏  ›  技术社区  ›  Addsy

使用S3、Rails和回形针时隐藏Amazon URL

  •  8
  • Addsy  · 技术社区  · 15 年前

    我刚刚设置了使用Rails3和回形针上传到AmazonS3的文件。所有这些都非常好地工作,并且运行正常。我只想整理一个小细节。目前,URL是Amazon URL(即开始 http://s3.amazonaws.com )我希望他们从我的领域开始。

    我已经将必要的CNAME记录添加到我的DNS中,它们工作正常,因此我可以通过我的域的子域访问这些文件。问题仅仅是由剪贴纸生成的URL从Amazon域开始。有没有一种简单的方法可以改变回形针的配置来解决这个问题?

    干杯

    2 回复  |  直到 10 年前
        1
  •  5
  •   yfeldblum    15 年前
        2
  •  2
  •   Ryan Epp    10 年前

    以下是隐藏S3资产的Amazon URL所需的一切:

    1. 将S3存储桶命名为要使用的域别名。所以如果你想访问你的资产 http://assets.mysite.com/path/to/image.png 那么你应该给你的S3桶命名: assets.mysite.com

    2. 将CNAME添加到DNS记录中,以便 assets.mysite.com网站 是一个别名 assets.mysite.com.s3.amazonaws.com (不要在DNS记录的“名称”字段中包含“.mysite.com”)。

    3. 设置曲别针以使用默认S3路径的新域别名insetad:

       has_attached_file :my_file,
           ...
           :url => ':s3_alias_url'
           :s3_host_alias => 'assets.mysite.com',
           ...
      

    我通常有不同的bucket用于开发、分段和生产,并且只使用prod bucket的域别名。为了确保它在每个环境中都能正常工作, :url 设置通常如下:

    :url => (ENV['USE_S3_ALIAS'] == 'TRUE' ? ':s3_alias_url' : ':s3_domain_url')
    
    推荐文章