Tag: amazon web services

使用Paperclip和IAM策略将文件上载到Amazon时拒绝访问

我无法使用S3 IAM策略使用Paperclip上传。 我甚至遇到直接jQuery上传的问题(没有Paperclip)。 我的方案如下,我有一个应用程序,将有许多网站。 每个站点都有自己的桶,应该只能访问自己的桶,没有其他人的桶。 IAM示例策略文档在“示例:允许每个IAM用户访问存储桶中的文件夹”下准确说明了我想要执行的操作。 我为应用程序设置了一个IAM组,并且该组中每个站点都有一个用户。 这些IAM用户属于该组。 该小组的政策如下: { “Version”:”2012-10-17″, “Statement”:[{ “Effect”:”Allow”, “Action”:[ “s3:PutObject”, “s3:GetObject”, “s3:GetObjectVersion”, “s3:DeleteObject”, “s3:DeleteObjectVersion” ], “Resource”:”arn:aws:s3:::my-app/${aws:username}/*” } ] } 这是我在存储桶上的CORS配置,当然开发时它会被锁定: * GET POST PUT * 这是我的Paperclip设置: has_attached_file :background_image, storage: :s3, s3_credentials: { access_key_id: “xxx”, secret_access_key: “xxx” }, bucket: “my-app”, s3_permissions: “public-read”, path: “/background_images/:id/:filename” 我以前一直在使用直接在策略上的策略,它确实有效,但是当我进入具有许多“站点”的生产环境时,它不像我需要的那样灵活。 据我所知,我已完全遵循文档,但我所做的任何事情都会导致“访问被拒绝”。 此时我甚至不确定我的问题是我的IAM策略还是我的Paperclip配置。 编辑:澄清。 编辑2:最终解决方案 以下是基于本文的最终IAM策略: { […]

衡量SAAS App带宽使用情况

我正在构建基于Ruby on Rails的SaaS应用程序。 该应用程序正在AWS(亚马逊)上托管。 我需要测量每个客户的带宽使用情况,以进行计费和客户细分。 客户可以通过他们的Urls识别。 像customer1.myapp.com或mycustomer.com 有人可以建议最好的方法吗? 任何工具或简单的黑客将不胜感激。

Heroku + Rails4.2:Cloudfront设置

我正在尝试为我的heroku应用程序设置Cloudfront。 文件似乎缺乏独立的立场。 以下是我遵循的步骤: 1. Setup Cloudfront in AWS console 2. Added cloudfront domain name to production.rb `config.action_controller.asset_host = ‘XXXX.cloudfront.net’` 3. Set `config.assets.compile = true` in production.rb 4. Verified AWS_SECRET_ACCESS_KEY is correct in heroku config 5. I have added `gem ‘rails_12factor’, group: :production` 资产不再加载。 我在设置中缺少的任何步骤? UPDATE1: 在chrome调试器中,从此URL的cloudfront正确请求资产: http : //XXXXX.cloudfront.net/assets/application-22c7c249df1a24541d86603b0715eefe.css 但是在请求标题中,请参阅Status Code:302 Moved Temporarily 。 我想知道我是否有重定向循环以及如何调试它。 […]

如何在AWS Elastic Beanstalk上使用Resque运行Rails后台作业?

我在AWS Elastic Beanstalk平台上运行我的rails应用程序,该平台运行带有Auto Scaling和Elastic Load Balancing的单个EC2实例。 我想知道如何在Elastic Beanstalk上运行resque , delayed_job或sidekicq或其他一些后台作业解决方案。 Elastic Beanstalk上后台作业的可能选项有哪些?

如何在Elastic Beanstalk中恢复数据库?

我在Amazon Elastic Beanstalk上运行Ruby 1.9.3和Rails 3.2.8。 在我的数据方面出现了几个问题之后,我做了一个rake db:reload 现在我试图抓取我已在数据库预先重新加载中创建的数据。 我已按照亚马逊文档中的说明进行操作。 但是,在步骤6:在“数据库实例标识符”文本框中键入已还原的数据库实例的名称。 – 提示强制为实例提供新名称 – 从而创建新实例。 这一切都很好,除了我无法更改我使用Elastic Beanstalk的数据库实例,因此它对我来说无用。 除非我遗漏了什么。 请帮忙!!!

从AWS Elastic Transcoder作业中检索文件和缩略图URL

我有一个rails应用程序,使用他们的CORS配置将video上传到AWS S3存储桶,当完成此操作并创建railsvideo对象时,会创建Elastic Transcoder作业以将video编码为.mp4格式并生成缩略图图像,AWS SNS可以在作业完成时发送推送通知。 这个过程都运行良好,上传完成后我收到SNS通知,但我可以获取videourl,但通知只包含缩略图模式而不是实际文件名。 以下是我从AWS SNS收到的典型通知。 NB。 这是来自输出哈希 {“id”=>”1”, “presetId”=>”1351620000001-000040”, “key”=>”uploads/video/150/557874e9-4c67-40f0-8f98-8c59506647e5/IMG_0587.mp4”, “thumbnailPattern”=>”uploads/video/150/557874e9-4c67-40f0-8f98-8c59506647e5/{count}IMG_0587”, “rotate”=>”auto”, “status”=>”Complete”, “statusDetail”=>”The transcoding job is completed.”, “duration”=>10, “width”=>202, “height”=>360} 正如您在thumbnailPattern下看到的那样,只是要使用的文件模式,而不是创建的实际文件。 有谁知道我如何获得通过弹性转码器和SNS创建的文件的URLS? transcoder.rb#=>我在保存video时创建了一个新的转码器对象 class Transcoder < Video def initialize(video) @video = video @directory = "uploads/video/#{@video.id}/#{SecureRandom.uuid}/" @filename = File.basename(@video.file, File.extname(@video.file)) end def create transcoder = AWS::ElasticTranscoder::Client.new(region: "us-east-1") options = { pipeline_id: CONFIG[:aws_pipeline_id], input: […]

如何为Hartl的rails教程授予AWS用户权限

我不知道如何(或在何处)从AWS授予用户读写权限,以便用户可以在生产环境中的sample_app上发布图片。 这是第11章的最后一项任务,它没有被教程所涵盖,我无法在任何地方找到解决方案。 这是carrier_wave.rb文件: if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Configuration for Amazon S3 :provider => ‘AWS’, :aws_access_key_id => ENV[‘lalala’], :aws_secret_access_key => ENV[‘oloalle’] } config.fog_directory = ENV[‘name of bucket’] end end 这是教程中的过程:1)创建AWS IAM用户并记录访问权限和密钥 – 完成 2)创建S3桶 – 完成 3) 授予对上一步创建的用户的读写权限 – 如何??? 4)然后我运行这三个命令: $ heroku config:set S3_ACCESS_KEY=lalala $ heroku config:set S3_SECRET_KEY=oloalle $ heroku […]

基于Rails的EC2 AMI

我试图导航我的新EC2设置,并希望找到Rails的AMI设置。 我一直遇到麻烦。 基本上,我正在寻找这样的东西: * Apache 2.2 * Ruby Enterprise Edtion (REE) * Passenger * MySql Installed and configured with Ruby 任何人都有一个AMI,他们可以指向我的基本轨道堆栈? 移动答案在这里: 感谢您的回复/想法。 我见过大多数这些选择。 我想我会选择一个干净的Linux AMI,然后使用这样的东西自己定制它: http://www.rubyinside.com/how-to-install-a-ruby-18-stack-on-ubuntu-810-from-scratch-1566.html 此外,是的,我计划在单个EC2实例上运行Rails作为VPS的替代方案。 如果我使用预留实例,我基本上可以获得一台专用机器和1.7GB内存,每月约22美元。 这击败了我发现的任何VPS。 还有其他成本和负担,但我会继续调查是否有可能。 谢谢。

使用AWS RDS在Heroku App上获取Mysql2 :: Error(SSL连接错误:ASN:错误的其他签名确认)

Mysql2::Error (SSL connection error: ASN: bad other signature confirmation): 我正在建立一个管理网站。 环境是Rails 4.2和Ruby 2.2,将AWS RDS与Heroku服务器连接起来。 我不知道为什么会出现这个错误。 它突然出现了。 我找不到除此之外的任何错误。 虽然我两天前通过了我的代码,但这次我收到了这个错误。(这两天我没有碰到这个代码。)你想出任何想法来解决这个问题吗? 谢谢!

AWS Elastic Beanstalk中的worker“dyno”

Amazon Web Service现在在Elastic Beanstalk中有一个工作层。 但是,它让我们混淆了那些来自工人dyno时代的人。 作为比较,在Heroku中,可以为web和worker配置两个dynos(类似处理器?)。 网络将适用于任何请求,并将在15秒后正常超时。 因此,如果您的请求持续时间超过此要求,您的请求将会暂时超时,但本身并未终止。 在这种情况下,您应该使用worker并且您的web dyno应该每分钟(可能)多次访问端点以检查是否有任何结果被带回用户。 要制作工作者或网络动态,你需要的只是滑动滑块,你就可以了。 有时,您可能需要一个Procfile。 但是没有什么花哨的东西,或者真的很难的东西,或者令人困惑的东西。 在AWS EBS(Elastic Beanstalk)中,从第1天开始您点击eb init,将询问您是标准版还是工作版。 当你点击标准时,似乎没有办法让它成为工人。 在我们的情况下,工作者和标准Web位于一个应用程序下。 那么,我们如何为工人和标准使用EBS实例。 我们的工作人员正在使用sidekiq和redis。 请指出任何指导或帮助我们解决此问题。