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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48fbdd30064455891883b654824c26ae0237d56b
|
4
|
+
data.tar.gz: 91d4801f52820bbfa478985707c443fad89eb187
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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
|
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
|
-
|
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 ||=
|
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
|
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:
|
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,
|
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
|
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.
|
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-
|
11
|
+
date: 2015-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: aws-sdk
|
14
|
+
name: aws-sdk
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
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: '
|
26
|
+
version: '2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|