heroku_pg_backups_archive 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 30abe9a988560377d39f5c0094ba36add75b6837
4
- data.tar.gz: 32424a2e516ea1118dc2e528b4bf5edaf0fc2f1d
3
+ metadata.gz: 48fbdd30064455891883b654824c26ae0237d56b
4
+ data.tar.gz: 91d4801f52820bbfa478985707c443fad89eb187
5
5
  SHA512:
6
- metadata.gz: 2fae938567ccb30da88c7958cdd8f273a58f23008f8ca45c8fa8d8ab197763bf3823053a1fb245beee1739c74fcb4bcc24ea5970df854767d29ec1a35fa0d0cc
7
- data.tar.gz: 55079476bf2bacebee703abc8927ed0dc9a1745d79c45582951bb6f955b36de106c0d74a27ff68054d60f87f97e2f6981ab11ef65a78ea4db82a1a7d9ca90869
6
+ metadata.gz: cf99909463923949105217050d3613e00f663b2ed574132008cdfc4730918a405d5626f6dbea6b23df1f08a9b62f5f9a058e207406c47d54626bd5597ea3bbef
7
+ data.tar.gz: 1a06b3223635ca0b898130078cbdd2bc16f5ef43079e3aeb1a8abde7d125f73a9f5e02471d581b552948f0f3a43c40d3845d8101800813d8fdfdee61b37a47be
data/README.md CHANGED
@@ -33,6 +33,7 @@ HerokuPgBackupsArchive.configure do |config|
33
33
  config.heroku_toolbelt_path = "path/to/heroku/executable" # defaults to `vendor/heroku-toolbelt/bin/heroku` when not explicitly set
34
34
  config.aws_access_key_id = "aws-secret-key-id" # defaults to `ENV["AWS_ACCESS_KEY_ID"]` when not explicitly set
35
35
  config.aws_secret_access_key = "aws-secret-access-key" # defaults to `ENV["AWS_SECRET_ACCESS_KEY"]` when not explicitly set
36
+ config.aws_region = "some-region" # defaults to `us-east-1` when not explicitly set
36
37
  config.after_complete = lambda { puts "I'm all done!" } # defaults to no action
37
38
  end
38
39
  ```
@@ -45,6 +46,10 @@ rake heroku_pg_backups_archive
45
46
 
46
47
  To make the heroku toolbelt available on your dyno, you can use [heroku-buildpack-toolbelt](https://github.com/gregburek/heroku-buildpack-toolbelt).
47
48
 
49
+ ### `aws-sdk` Dependency
50
+
51
+ If you have a dependency on version 1 of the `aws-sdk` gem you will need to update your gemfile to depend on `aws-sdk-v1`. This will allow your app to continue to function as normal, but allow this gem to use newer features in version 2 of the SDK.
52
+
48
53
  ## Development
49
54
 
50
55
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "aws-sdk-v1", "~> 1"
22
+ spec.add_dependency "aws-sdk", "~> 2"
23
23
  spec.add_development_dependency "bundler", "~> 1.8"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
25
  spec.add_development_dependency "pry", "~> 0"
@@ -1,5 +1,5 @@
1
1
  require "open-uri"
2
- require "aws-sdk-v1"
2
+ require "aws-sdk"
3
3
  require "base64"
4
4
 
5
5
  module HerokuPgBackupsArchive
@@ -14,21 +14,18 @@ module HerokuPgBackupsArchive
14
14
  end
15
15
 
16
16
  def perform
17
- bucket.objects[archive_path].write(backup_data, write_options)
17
+ s3.put_object(write_parameters)
18
18
  end
19
19
 
20
20
  private
21
21
 
22
22
  attr_reader :backup
23
23
 
24
- def bucket
25
- @bucket ||= s3.buckets[HerokuPgBackupsArchive.config.bucket_name]
26
- end
27
-
28
24
  def s3
29
- @s3 ||= AWS::S3.new(
25
+ @s3 ||= Aws::S3::Client.new(
30
26
  access_key_id: HerokuPgBackupsArchive.config.aws_access_key_id,
31
- secret_access_key: HerokuPgBackupsArchive.config.aws_secret_access_key
27
+ secret_access_key: HerokuPgBackupsArchive.config.aws_secret_access_key,
28
+ region: HerokuPgBackupsArchive.config.aws_region
32
29
  )
33
30
  end
34
31
 
@@ -40,12 +37,19 @@ module HerokuPgBackupsArchive
40
37
  open(backup.url)
41
38
  end
42
39
 
43
- def write_options
40
+ def write_parameters
41
+ {
42
+ body: backup_data,
43
+ bucket: HerokuPgBackupsArchive.config.bucket_name,
44
+ key: archive_path
45
+ }.merge(sse_customer_options)
46
+ end
47
+
48
+ def sse_customer_options
44
49
  unless HerokuPgBackupsArchive.config.sse_customer_key.nil?
45
50
  {
46
51
  sse_customer_algorithm: :AES256,
47
- sse_customer_key: Base64.encode64(HerokuPgBackupsArchive.config.sse_customer_key),
48
- sse_customer_key_md5: Base64.encode64(OpenSSL::Digest::MD5.digest(HerokuPgBackupsArchive.config.sse_customer_key))
52
+ sse_customer_key: HerokuPgBackupsArchive.config.sse_customer_key
49
53
  }
50
54
  else
51
55
  {}
@@ -1,11 +1,19 @@
1
1
  module HerokuPgBackupsArchive
2
2
  class Config
3
- attr_accessor :heroku_toolbelt_path, :app_name, :sse_customer_key, :bucket_name, :aws_access_key_id, :aws_secret_access_key, :after_complete
3
+ attr_accessor :heroku_toolbelt_path,
4
+ :app_name,
5
+ :sse_customer_key,
6
+ :bucket_name,
7
+ :aws_access_key_id,
8
+ :aws_secret_access_key,
9
+ :aws_region,
10
+ :after_complete
4
11
 
5
12
  def initialize
6
13
  @heroku_toolbelt_path = "vendor/heroku-toolbelt/bin/heroku"
7
14
  @aws_access_key_id = ENV["AWS_ACCESS_KEY_ID"]
8
15
  @aws_secret_access_key = ENV["AWS_SECRET_ACCESS_KEY"]
16
+ @aws_region = "us-east-1"
9
17
  end
10
18
  end
11
19
  end
@@ -1,3 +1,3 @@
1
1
  module HerokuPgBackupsArchive
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heroku_pg_backups_archive
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hightower
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-05-05 00:00:00.000000000 Z
11
+ date: 2015-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: aws-sdk-v1
14
+ name: aws-sdk
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1'
19
+ version: '2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1'
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement