Tag: amazon web services

Heroku | Ruby ArgumentError:缺少必需的参数:

我在/config/initializers/carrier_wave.rb中添加了aws访问信息: if Rails.env.production? CarrierWave.configure do |config| config.fog_credentials = { # Configuration for Amazon S3 :provider => ‘AWS’, :aws_access_key_id => ENV[‘access_key’], :aws_secret_access_key => ENV[‘secret_access_key’], } config.fog_directory = ENV[‘bucket’] end end 但是当我尝试推送到heroku时,我得到以下错误:我不知道还能做什么,任何帮助将不胜感激。 JUSTINs-iMac:premidx justindoshay$ git push heroku Fetching repository, done. Counting objects: 23, done. Delta compression using up to 4 threads. Compressing objects: 100% (11/11), done. Writing […]

AWS Cognito用户身份validation缺少必需参数SRP_A

我正在尝试使用AWS Cognito服务通过ruby SDK进行用户身份validation。 我能够签名,使用这些方法确认sign_up进程 resp = client.sign_up({ client_id: “ClientIdType”, secret_hash: “SecretHashType”, username: “UsernameType”, password: “PasswordType”, user_attributes: [{ name:”AttributeNameType”, value: “AttributeValueType”, }], validation_data: [{ name: “AttributeNameType”, value: “AttributeValueType”, }] }) 和confirm_sign_up使用 resp = client.confirm_sign_up({client_id: “ClientIdType”, secret_hash: “SecretHashType”, username: “UsernameType”, confirmation_code: “ConfirmationCodeType” }) 但是在尝试通过initiate_auth登录用户时,我收到一个错误, 缺少必需的参数SRP_A cog_provider.initiate_auth({client_id: “xxxxxxxxx”, auth_parameters: { username: “xxx”, password: “xxx”}, auth_flow: “USER_SRP_AUTH”}) SRP_A指示在哪里找到它。 我已经搜索过这个问题,建议使用admin_initiate_auth方法登录我认为不是最佳做法的用户。

使用Ruby获取AWS区域名称

我正在为AWS开发Rails应用程序,并希望为区域名称创建下拉菜单,例如“us-east-1”等。 如果有人已经创建了gem来获取它们,我想使用它。 有谁知道这样的gem或有用的API?

Ruby AWS – 以编程方式生成可用AWS实例类型的列表

我最近开始在Sinatra Web应用程序中使用aws gem,其目的是为实例管理提供定制的前端(集成非AWS工具)。 我目前正在处理表单,允许用户设置可能需要设置的所有选项,其中一个选项是实例类型(m1.small,c1.medium等)。 我想要的是能够联系某些来源以获取可用类型列表。 我查看了AWS :: EC2文档,但未找到符合此描述的任何内容。 我没有必要坚持认为解决方案是aws gem的一部分,但如果是,那就更好了,因为那是我已经使用的工具。 您是否知道以编程方式收集此信息的方法?

在Amazon S3中自动删除超过n天的对象(如何?)

我使用ruby lib( http://sofzh.miximages.com/ruby-on-rails/pprecodeS3Object.delete ‘photo-1.jpg’, ‘photos’ 有没有办法自动删除超过一周的图像? 如果它不存在,我将不得不写一个守护进程来做到这一点:-( 谢谢 更新:现在有可能,检查罗伯托的答案。

如何使用带有导轨的回形针以及它在部署中如何工作?

我已经完成了2个Rails应用程序,包括使用回形针进行图像上传。 我刚才做的第一个在当地工作得很好,但是当我部署到Heroku时我遇到了问题; 我意识到我需要使用AWS来启用图片上传。 我刚才做了那个项目。 我最近开始了另一个项目并尝试合并类似的function。 在我尝试部署之前使用paperclip启用AWS之前,我只是想测试如果我尝试上传图像会发生什么。 令我惊讶的是,它没有AWS! 我希望能够理解为什么它第一次没有工作以及为什么它现在可以工作。 回形针如何在幕后使用heroku和rails?

AWS SES超时

我使用的是Rails 4.2, AWS-SES gem和Mailform gem 。 我正在尝试在开发中设置AWS SES并将其添加到config/development.rb : # Configure mail using AWS SES config.after_initialize do ActionMailer::Base.delivery_method = :amazon_ses ActionMailer::Base.custom_amazon_ses_mailer = AWS::SES::Base.new( :secret_access_key => ENV[‘AWS_SECRET_ACCESS_KEY’], :access_key_id => ENV[‘AWS_SECRET_KEY_ID’], :server => ’email.eu-west-2.amazonaws.com’ ) end 当我尝试从控制台发送电子邮件时,我在30秒后收到超时。 我开始写所有这些请求帮助,但后来我发现MailForm可能不是从ActionMailer派生的。 果然, MailForm::Base有超类Object ,因此配置ActionMailer毫无意义。 我更改了这两行来配置MailForm::Base ,但我仍然会超时。 这两颗gem可能不相容吗? 否则,任何建议或解决或疑难解答将不胜感激。

建议在Ruby中为S3 Bucket生成预签名URL的方法

我正在尝试在我的Rails服务器上生成预先签名的URL以发送到浏览器,以便浏览器可以上传到S3。 似乎aws-sdk-s3是未来使用的gem。 但不幸的是,我没有遇到可以提供清晰度的gem文档。 似乎有几种不同的方式这样做,并希望对以下方法的差异提供任何指导 – 使用Aws::S3::Presigner.new ( https://github.com/aws/aws-sdk-ruby/blob/master/aws-sdk-core/lib/aws-sdk-core/s3/presigner.rb )但它似乎没有接受对象参数或身份validation凭据。 使用Aws::S3::Resource.new ,但似乎不会维护aws-sdk-resources 。 ( https://aws.amazon.com/blogs/developer/upgrading-from-version-2-to-version-3-of-the-aws-sdk-for-ruby-2/ ) 使用Aws::S3::Object.new然后在该对象上调用put方法。 直接使用AWS::SigV4 。 我想知道他们是如何不同的,以及选择一个而不是另一个的含义? 非常感谢任何建议,特别是使用aws-sdk-s3 。 谢谢!

使用Ruby将大文件上传到S3失败,出现内存不足错误,如何在块中读取和上载?

我们通过Ruby AWS SDK(v2)从Windows机器上传各种文件到S3。 我们已经使用Ruby 1.9进行了测试。 我们的代码工作正常,除非遇到大文件,抛出内存不足错误。 起初我们使用以下代码将整个文件读入内存: :body => IO.binread(filepath), 然后在Googling之后我们发现有很多方法可以用Ruby读取文件: :body => File.open(filepath, ‘rb’) { |io| io.read }, 但是这段代码没有解决问题,我们找不到特定的S3(或相关)示例,它显示了如何读取文件并以块的forms传递给S3。 整个文件仍然加载到内存中,并在大文件中引发内存不足错误。 我们知道我们可以将文件拆分为块并使用AWS多部件上传上传到S3,但是如果可能的话,首选是避免这种情况(尽管如果这是唯一的方法就没问题)。 我们的代码示例如下。 以块的forms读取文件,避免内存不足错误以及上传到S3的最佳方法是什么? require ‘aws-sdk’ filepath = ‘c:\path\to\some\large\file.big’ bucket = ‘s3-bucket-name’ s3key = ‘some/s3/key/file.big’ accesskeyid = ‘ACCESSKEYID’ accesskey = ‘ACCESSKEYHERE’ region = ‘aws-region-here’ s3 = Aws::S3::Client.new( :access_key_id => accesskeyid, :secret_access_key => accesskey, :region => […]

从AWS S3读取CSV文件时获取“Errno :: ENOENT:没有此类文件或目录@ rb_sysopen”

我有部署到Heroku的应用程序。 我添加了通过CSV上传用户的function。 为此,我提供了CSV上传function(二手Paperclip gem)。 这是我的代码,用于读取文件和创建新用户 def import(file) CSV.foreach(file.path, headers: true) do |row| row_hash = row.to_hash.values data = row_hash[0].split(“\t”) . . . end 在当地它工作正常。 但是在heroku上,它给了我以下错误 Errno::ENOENT: No such file or directory @ rb_sysopen – https://s3.amazonaws.com/…./…./sample_csv(2).csv 我在amazon-s3中引用了以下链接Errno :: ENOENT(没有这样的文件或目录) 文件从亚马逊服务器读取,ruby在轨道上,没有匹配路由 但没有任何成功。 为了更多的调试,我从我的本地rails控制台尝试了相同的URL,它给了我同样的错误。 2.2.2 :008 > cp = “https://s3.amazonaws.com/…./…./sample_csv(2).csv” 2.2.2 :008 > f = File.open(cp, “r”) Errno::ENOENT: No […]