以下是隐藏S3资产的Amazon URL所需的一切:
-
将S3存储桶命名为要使用的域别名。所以如果你想访问你的资产
http://assets.mysite.com/path/to/image.png
那么你应该给你的S3桶命名:
assets.mysite.com
-
将CNAME添加到DNS记录中,以便
assets.mysite.com网站
是一个别名
assets.mysite.com.s3.amazonaws.com
(不要在DNS记录的“名称”字段中包含“.mysite.com”)。
-
设置曲别针以使用默认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')