S3.YML - 访问变量?基于目前的环境?

时间:2010-11-06 06:13:15

标签: ruby-on-rails ruby-on-rails-3 paperclip yaml

我正在使用带有/config/s3.yml文件的paperclip,其中包含以下内容:

common: &common
    access_key_id: XXXXXXXXXX
    secret_access_key: XXXXXXXXXXXXXXXXXXXX

development:
    <<: *common
    bucket: myapp-local-dev

test:
    <<: *common
    bucket: myapp-123-test

production:
    <<: *common
    bucket: myappname-313-production

在我看来,我想动态地做这样的事情:

    <img src="http://s3.amazonaws.com/myapp-local-dev/1/photos/15/1/thumb/Logo%20Design%20by%20kuda-1.jpeg" />

    <img src="http://s3.amazonaws.com/myappname-313-production/1/photos/15/1/thumb/Logo%20Design%20by%20kuda-1.jpeg" />

以某种方式,了解当前环境然后获取存储桶名称。可能?感谢

1 个答案:

答案 0 :(得分:2)

YAML.load_file("#{Rails.root}/config/s3.yml")[Rails.env]["bucket"]

如果您只想返回存储桶名称,应该可以解决这个问题。

如果您使用带有aws / s3的Paperclip,则应自动处理。

所以:

<%= image_tag @my_obj.image.url %> 应该返回所需的网址,无论环境如何

希望有帮助吗?