我正在做this heroku tutorial。
在教程中,它提到我需要为S3_KEY,S3_SECRET和S3_BUCKET设置环境变量。
我在AWS(亚马逊网络服务)上创建了一个S3 Bucket,我使用了Bucket的唯一名称作为我的.env(我在我的网站上创建了一个.env文件) Rails项目,并将其添加到.gitignore)S3_BUCKET变量。
但是,在本教程中,我需要设置 S3_KEY和S3_SECRET。
我在哪里可以找到这些变量?我似乎无法在AWS / S3上找到它们。我想生成这些变量或与这些变量有什么关系?
第二个问题:我将有一个模型照片看起来像这样......
class Photo < ActiveRecord::Base
has_attached_file :image,
:styles => { thumbnail: "100x100#" },
:storage => :s3,
:s3_credentials => { :access_key_id => ENV['S3_KEY'],
:secret_access_key => ENV['S3_SECRET'],
:bucket => ENV['S3_BUCKET'] }
end
这现在可以在我的所有环境中使用,包括proku on heroku,还是我需要对heroku做一些特别的事情?
答案 0 :(得分:1)
您在此处所做的是确定这些变量的用途。
:s3_credentials => { :access_key_id => ENV['S3_KEY'],
:secret_access_key => ENV['S3_SECRET'],
:bucket => ENV['S3_BUCKET'] }
现在您需要设置生产中变量的实际值。
要创建新密钥和密钥,请转到AWS管理控制台,然后单击右上角的名称。接下来,单击安全凭据并生成新的访问密钥对。请使用以下这些。
要为heroku设置AWS变量,请从命令行执行以下操作:
$ heroku config:set S3_KEY=xxxxxxxxxx S3_SECRET=xxxxxxxxxxxxxxxxxxxxxx
显然用你的实际钥匙替换x。如果您想了解有关配置变量的更多信息,请点击此处:Heroku Config Vars
您最后可能会注意到这一点,但无论如何都值得一提。确保您永远不会将实际的AWS密钥推送到Github(甚至是私人仓库)。有些人专门为AWS密钥搜索Github,如果他们找到它们可能会花费你很多钱。
关于第二个问题,我会将本地存储用于测试/开发环境。做这样的事情:
if Rails.env.test? || Rails.env.development?
:storage = :file
else
:storage = :s3
end