Tag: heroku

AWS S3 IAM策略,用于对单个存储桶执行读写权限

在Michael Hartl’Rails教程的第11.4.4节“ 生产中的图像上传 ”中,建议使用Amazon Web Services S3作为云存储服务。 在页面底部的一个注释中,作者自己将本书的这一部分定义为“具有挑战性”,并且还表明它“可以跳过而不会失去连续性”。 实际上,本节最具挑战性的部分之一是找到一个合适的IAM策略,该策略可以附加到AWS上的IAM用户,以便授予IAM用户对S3存储桶的读写权限。 我发现在Stackoverflow上这是一个常见问题:例如,请参阅“ 尝试设置Amazon的S3存储桶:403禁止错误和设置权限 ”。 实际上, Amazon Web Services针对需要对单个S3存储桶具有读写权限的应用程序的解决方案不起作用,并且尝试上载图像的用户从Heroku的AWS服务器接收403禁止状态。 预定义的“AmazonS3FullAccess”策略确实有效,但不应将其视为最终解决方案,因为不需要向IAM用户授予太多权限,因此也不需要向应用程序授予权限,并且我认为也可能是安全漏洞。 那么正确的IAM政策是什么?

无法推送到Heroku(找不到Rake 10.3.2)

这里有新手。 我正在使用Ubuntu 14.04虚拟机上的railstutorial.org上的教程。 在我到达heroku之前,它一直很顺利。 当我想将我的应用程序推送到heroku时,它抱怨它无法找到rake-10.3.2。 我检查了heroku,应用程序似乎是空的。 但是,我的应用程序中有rake-10.3.2,如果使用“bundle show rake”,它会显示正确的版本。 brandon@brandon-virtualbox:~/rails_projects/first_app$ bundle show rake /home/brandon/.rvm/gems/ruby-2.0.0-p481@railstutorial_rails_4_0/gems/rake-10.3.2 看起来没问题,但当我尝试将其推送到heroku时,我得到: brandon@brandon-virtualbox:~/rails_projects/first_app$ git push heroku master Initializing repository, done. Counting objects: 66, done. Compressing objects: 100% (55/55), done. Writing objects: 100% (66/66), 14.46 KiB | 0 bytes/s, done. Total 66 (delta 6), reused 0 (delta 0) —–> Ruby app detected —–> […]

为什么我的Heroku应用程序没有使用Sendgrid在生产中发送电子邮件?

我的设计电子邮件在开发中运行良好。 但是现在我已经推送到Heroku而且正在使用sendgrid附加组件,它们不会被发送。 我没有收到错误。 它似乎发送得很好,只是它从未实际到达我的收件箱。 这是我的config/environment/production.rb文件: config.action_mailer.delivery_method = :smtp config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = false config.action_mailer.default :charset => “utf-8” config.action_mailer.default_url_options = { :host => ‘http://myapp.herokuapp.com’ } config.action_mailer.smtp_settings = { :user_name => ENV[“SENDGRID_USERNAME”], :password => ENV[“SENDGRID_PASSWORD”], :address => ‘smtp.sendgrid.net’, :domain => ‘myapp.herokuapp.com’, :port => 587, :authentication => :plain, :enable_starttls_auto => true } 我在Heroku上检查了那些配置变量,它们返回了有效的结果。 有任何想法吗? PS我还没有指向Heroku App的域名,我只想先用Heroku设置测试它。

Heroku Rails应用程序级别不记录

我在Heroku上有一个rails应用程序,它没有在应用程序级别登录。 当前版本: ruby1.9.3 铁轨3.1.3 在config / environment / production.rb中有以下行: config.logger = Logger.new(STDOUT) config.log_level = :info 我错过了什么? 我还应该寻找什么?

Gemfile中的环境变量

我在Gemfile中使用环境变量时遇到问题。 我正在尝试使用API​​密钥从私有Github存储库加载gem: auth = ENV[‘SECRET_GIT’] gem ‘foobar’, git: “https://#{auth}:x-oauth-basic@github.com/Foo/Bar.git” 但是如果我puts我的ENV[‘SECRET_GIT’]变量放在其中,那么它就没有了。 我可以这样做因为这些(特别是第一个): – https://devcenter.heroku.com/articles/bundler-configuration#gem-source-username-and-password – https://stackoverflow.com/a/7338154/5353193 – 使用Gemfile中的环境变量部署到Heroku Bundler版本1.14.6 ruby2.4.0p0 谢谢你的帮助 编辑 我想在我的本地环境中这样做,我想在heroku上做这个没有问题。

为什么Heroku在应用程序闲置一段时间后重新编译我的资产?

在生产中(在Heroku上),不应该在启动时编译资产一次,然后再也不编译? /production.rb config.serve_static_assets = false config.assets.compress = true config.assets.compile = false config.assets.digest = true 当有人没有按下我的应用程序一段时间时,事情就会变得空闲,似乎资产在新的新请求进入时会被重新编译? 知道我做错了什么?

Heroku中的SSL与自定义域

我正在使用PointHQ作为DNS并在Heroku上托管我的域名。 默认情况下,它看起来像Heroku支持https(例如https://yodel-site.herokuapp.com ),但不是当你使用https://yodel.co访问我的网站时 – 虽然它只适用于http:/ /。 为了使SSL(https)在Heroku中的自定义域上运行,我需要做什么? 是在我的DNS( PointHQ )中配置,还是我需要为插件支付heroku? 这是我的Heroku自定义域部分的样子:

Rails Gemfile:在开发中使用一行,在生产中使用另一行

我们在生产中使用Heroku运行Unicorn,但在本地机器上使用Webrick进行开发。 我们无法在本地计算机上安装Unicorn。 是否有可能让Rails仅在生产中加载Unicorn gem? 现在,我们的解决方案是在本地运行应用程序时注释掉Unicorn gem,并在推送到Heroku时取消注释gem。 我们在Rails 3.2.12上。 的Gemfile: source ‘http://rubygems.org’ gem ‘rails’, ‘3.2.12’ gem ‘jquery-rails’ # # ========================================================================================= # # #========================================================================================= gem ‘mongo’ gem ‘mongo_mapper’ gem ‘plucky’ gem ‘bson_ext’ gem ‘bson’ gem ‘newrelic_rpm’ gem ‘rpm_contrib’ # Gems used only for assets and not required # in production environments by default. group :assets do gem […]

Heroku rake任务未初始化为MongoMapper模型的常量

我有一个小的rake任务,只是将一个新的延迟作业放入队列。 我插入了一个调试行 desc ‘Start processing new rss feed articles’ task :process_new_articles => :environment do config = RSS_CONFIG feeds = config[‘rss_feeds’] puts Article.all feeds.each do |feed| Delayed::Job.enqueue ProcessNewArticlesJob.new(feed, config[‘settings’]) end end 它似乎正在正确加载配置信息。 但是我在运行任务时遇到“未初始化的常量文章”错误。 文章是MongoMapper模型。 我已经validation了与数据库的连接(在MongoLab上)可以正常工作。 这一切在当地很有效。 – 更奇怪的是,使用“heroku run console”引用Article.all工作得很好。 – 堆栈跟踪显示不多: 2011-12-04T22:33:02+00:00 app[start.1]: rake aborted! 2011-12-04T22:33:02+00:00 app[start.1]: uninitialized constant Article

设计omniauth-facebook redirect_uri不是绝对的URI

非常感谢你的建议。 我迁移到Heroku ,我有facebook omniauth身份validation的以下问题。 当我使用facebook进行身份validation时, 回调URL不起作用,我会收到以下日志错误消息发送到主页https://barteringapps.herokuapp.com/#_=_ : “redirect_uri isn’t an absolute URI. Check RFC 3986.”,”type”:”OAuthException”,”code”:191,”fbtrace_id”:”BT1wrRRo64m” method=GET path=”/” host=barteringapps.herokuapp.com request_id=8913218f-703d-4da0-9388-f59d3a97bb69 fwd=”81.171.81.200″ dyno=web.1 connect=0ms service=11ms status=200 bytes=13425 在开发中 ,当我在devise.rb中设置callback-url并在facebook App设置中设置http://127.0.0.1:5000/users/auth/facebook/callback时function正常工作 所以给出一个更详细的日志 (我省略了不重要的信息): 我点击登录链接 method=GET path=”/users/sign_in” host=barteringapps.herokuapp.com fwd=”81.171.81.200″ status=200 我点击登录facebook method=GET path=”/users/auth/facebook” host=barteringapps.herokuapp.com fwd=”81.171.81.200″ status=302 INFO — omniauth: (facebook) Request phase initiated. 从facebook回调,我注意到该路径不包括我的主机 method=GET path=”/users/auth/facebook/callback?code=’sometoken'” host=barteringapps.herokuapp.com fwd=”81.171.81.200″ 我已经搜索了Stackoverflow的解决方案,我按照这个说明设计了omniauth-facebook […]