Tag: amazon web services

Rspec – 引发错误时参数数量错误

所以在我的代码中我有这个方法我试图测试: # checks if a file already exists on S3 def file_exists?(storage_key) begin s3_resource.bucket(@bucket).object(storage_key).exists? rescue Aws::S3::Errors::Forbidden => e false end end 现在我试图制作两个测试用例 – 一个用于文件存在时,一个用于何时不存在。 专注于失败案例。 我想要存根exists? 提出Aws::S3::Errors::Forbidden错误以便file_exists? 方法将返回false。 这是我的测试代码的样子: it “returns false if the file doesn’t already exist” do allow_any_instance_of(Aws::S3::Object).to receive(:exists?).and_raise( Aws::S3::Errors::Forbidden ) expect(instance.file_exists?(‘foo’)).to be false end 运行此测试我看到: wrong number of arguments (given 0, expected […]

无法使用ruby脚本从amazon s3删除文件

我正在使用aws-sdk-ruby来删除我的amazon s3帐户中保存在存储桶中的文件,但我无法弄清楚为什么我能够使用以下代码从S3存储桶中删除所需的文件。 这是我的代码 require ‘aws-sdk-v1’ require ‘aws-sdk’ ENV[‘AWS_ACCESS_KEY_ID’] = “XXXXXXX” ENV[“AWS_SECRET_ACCESS_KEY”] = ‘/ZZZZZZZZ’ ENV[‘AWS_REGION’] = ‘us-east-1’ s3 = Aws::S3::Resource.new bucket = s3.bucket(‘some-bucket’) obj = bucket.object(‘https://s3.amazonaws.com/some-bucket/38ac8226-fa72-4aee-8c3d-a34a1db77b91/some_image.jpg’) obj.delete

使用S3 Presigned-URL上传一个文件,该文件将具有公共读取权限

我正在使用Ruby on Rails和AWS gem。 我可以获得上传和下载的预签名url。 但是当我得到URL时没有文件,因此在download-url上将acl设置为’public-read’不起作用。 用例是这样的:1,服务器为用户提供了一个将内容上传到我的存储桶的路径,如果没有凭据,则无法读取。 2,该内容需要在以后公开:任何人都可以阅读。 澄清一下:我没有上传文件,我提供的URL供我的用户上传。 那时,我还想给用户一个公众可读的URL。 如果我自己上传文件似乎会更容易。 此外,读取URL需要永不过期。

如何检查移动设备是否已注册

我正在使用适用于Amazon SNS的Amazon AWS Ruby SDK,但我在使用已经注册的设备时遇到了一些问题。 有时当设备再次注册时,我收到类似AWS::SNS::Errors::InvalidParameter Invalid parameter: Token Reason: Endpoint arn:aws:sns:us-east-1:**** already exists with the same Token, but different attributes. 。 如何检查端点是否已存在,更重要的是,如何获取给定令牌的端点?

如何修复PG :: DuplicatePstatement:ERROR?

我想知道如何防止这种类型的错误。 到目前为止,我尝试通过AWS Opsworks上的数据库配置禁用预准备语句: 例如: 数据库配置 }, “deploy”: { “app_name”: { “database”: { “adapter”: “postgresql”, “prepared_statements”: false, “username”: “username”, “database”: “db_name_production”, “host”: “cool_host.com”, “password”: “easy” }, 错误日志 PG::DuplicatePstatement: ERROR: prepared statement “a6” already exists : INSERT INTO “polls” (“answer_type”, “auto_enable”, “can_have_correct_answer”, “created_at”, “de”, “en”, “es”, “event_id”, “game_card_length”, “game_card_start”, “id_language_code”, “is_custom_question”, “ja”, “language_id”, “points_award”, “poll_upload_id”, “pop_up_length”, “pop_up_start”, […]

如何随机生成文件链接?

我有一个PDF文件,我不想通过我网站上的URL公开访问。 作为(轻微)安全层,我想通过电子邮件向用户发送一个独特的,随机生成的URL,他们可以从中下载PDF,我将在AWS上存储或类似的东西。 我觉得我被困在routes.rb监狱,我不知道如何动态生成URL,也不知道如何正确创建随机URL,跟踪它们,或将它们链接到本地​​或AWS上存储的文件。 有没有人有任何建议来解决这个问题?

如何使用ruby将单个记录写入Redshift数据库?

目前,我们有一个脚本可以解析数据并将其一次上传到mysql数据库。 最近,我们决定改用aws redshift。 有没有办法可以使用我的亚马逊登录凭据和我的红移群集信息将这些记录直接上传到redshift数据库? 我在网上找到的所有指南都建议从S3存储桶导入文本或csv文件,但这对我的用例来说不太实用。 谢谢你的帮助 我想做这样的事情: require ‘aws-sdk’ require ‘pg’ AWS.config(access_key_id: ‘my_access_key_id’, secret_access_key: ‘my_secret_access_key’, region: ‘us-west-2’) redshift = AWS::Redshift.new credentials = { driver: “org.postresql.Driver” url: “my_connect_url” username: “my_username” password: “my_password” database: “my_db” } db = redshift.connect(credentials) # **NOT A REAL LINE OF CODE, I WISH IT WAS** sql_query = “INSERT INTO my_table (my_column) VALUES […]

从S3下载文件到Rails 4应用程序

我有一个AWS VM,它运行每日任务并生成多个文件。 我希望我的Rails应用程序下载这些文件并将它们放在应用程序中的文件夹中。 Ruby中是否有一个gem或方法可以做到这一点? 我知道如何使用s3cmd在bash中执行此操作,我想我可以创建一个脚本来以这种方式获取它们,但是寻找更原生的rails方式。 我正在使用这些文件中的数据作为应用程序,但我不希望用户能够下载它们。

在Amazon OpsWorks上使用Ruby 2.0

我想在Amazon OpsWorks上使用Ruby 2.0,所以我正在尝试以下方法: 选择自定义cookbook并将它们设置为我的https://github.com/aws/opsworks-cookbooks的分支 将https://github.com/aws/opsworks-cookbooks/blob/master/ruby/attributes/ruby.rb中的所有版本号更新为2.0值。 但这似乎没有任何影响。 自定义烹饪书是否覆盖了他们的内置对应物? OpsWorks是否使用菜谱中的Ruby配方进行基本的Ruby设置? 同样的问题也适用于Nginx – 我可以通过更改我的食谱叉来控制版本和设置吗?

列出存储桶时,Ruby Amazon S3 Access被拒绝

Ruby newb在这里。 我获得了亚马逊云数据的访问权。 我开始认为访问键是关闭但我可能是错的。 有人帮忙! 我有aws文件夹作为插件 >> Version => “0.6.3” >> AWS::S3::Base.establish_connection!(:access_key_id =>’*******’, :secret_access_key => ‘*****’) => #”s3.amazonaws.com”, :port=>80, :access_key_id=>”****”, :secret_access_key=>”****”}, @access_key_id=”****”, @secret_access_key=”****”, @http=#> >> AWS::S3::Service.buckets => AWS::S3::AccessDenied: Access Denied from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/error.rb:38:in `raise’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/base.rb:72:in `request’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/base.rb:88:in `get’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/service.rb:21:in `buckets’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:183:in `block in buckets’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:152:in `expirable_memoize’ from /Users/PBR/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/aws-s3-0.6.3/lib/aws/s3/extensions.rb:182:in `buckets’