bard-backup 0.3.0 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 30f8ca36634a8ee2f414e6aa238a27227d71b9033904b19ff55c649dd8bfe71b
4
- data.tar.gz: 2c858195ad3e2e23d84cbce7be7d99ab0000fec2d39f2cd1d409774987067f2d
3
+ metadata.gz: 23ecd12f3233d3f91b3d2683931ae3b99251a85773da44ddad9607a584654592
4
+ data.tar.gz: a2e1febf07c7e630be1b32d17f78eea4c31e298bd1c60defe983c39449e26a5c
5
5
  SHA512:
6
- metadata.gz: 44346cf310237c1d24c60733328dff6ac819ce050a45a183af50b269e61d9ebef420af721e961e612d5fff5d083d53c70dbf8b214b1443d9eee265df6f5b25ba
7
- data.tar.gz: 5bcf351a8697340af6e2388b42cf513a7dab8b76da456c0d4ba659dd846e32455eb447148cf77006dd32dd4992a4100ffd6b0f9b7662efe55ac633cf544fd3cf
6
+ metadata.gz: db8add94f2212367e0de47f8097ec8f4cf2bf7515049862e9e78450f062af6c25078f3c3bb62cb34f306b1d52343b777046a51176b802afb2d5fc3eed881549a
7
+ data.tar.gz: a1305345c4a9516758bba2c169d68d07b2d95ad420e8b54b9e914d4bfb1320231dad9ceccc6a4855bdb2476ed7b77ccb1dc0b0b23aab3142d20da5a191bcd9af
data/README.md CHANGED
@@ -9,7 +9,7 @@ Bard::Backup does 3 things in a bard project
9
9
 
10
10
  ## Usage
11
11
 
12
- Run with `Bard::Backup.call s3_path, access_key: "...", secret_key: "..."`
12
+ Run with `Bard::Backup.call s3_path, access_key: "...", secret_key: "...", region: "..."`
13
13
 
14
14
  Or just run via the `bard-rake` gem: `rake db:backup`, which wires up the above for you.
15
15
 
@@ -3,7 +3,7 @@ require "rexml"
3
3
 
4
4
  module Bard
5
5
  module Backup
6
- class S3Dir < Data.define(:path, :access_key, :secret_key)
6
+ class S3Dir < Data.define(:path, :access_key, :secret_key, :region)
7
7
  def keys
8
8
  response = client.list_objects_v2({
9
9
  bucket: bucket_name,
@@ -16,12 +16,13 @@ module Bard
16
16
  def put file_path, body: File.read(file_path)
17
17
  client.put_object({
18
18
  bucket: bucket_name,
19
- key: "#{folder_prefix}/#{File.basename(file_path)}",
19
+ key: [folder_prefix, File.basename(file_path)].compact.join("/"),
20
20
  body: body,
21
21
  })
22
22
  end
23
23
 
24
24
  def delete keys
25
+ return if keys.empty?
25
26
  objects_to_delete = Array(keys).map { |key| { key: key } }
26
27
  client.delete_objects({
27
28
  bucket: bucket_name,
@@ -43,6 +44,7 @@ module Bard
43
44
  end
44
45
 
45
46
  def folder_prefix
47
+ return nil if !path.include?("/")
46
48
  path.split("/")[1..].join("/")
47
49
  end
48
50
 
@@ -50,7 +52,7 @@ module Bard
50
52
 
51
53
  def client
52
54
  Aws::S3::Client.new({
53
- region: "us-west-2",
55
+ region: region,
54
56
  access_key_id: access_key,
55
57
  secret_access_key: secret_key,
56
58
  })
@@ -1,6 +1,6 @@
1
1
  module Bard
2
2
  module Backup
3
- VERSION = "0.3.0"
3
+ VERSION = "0.3.2"
4
4
  end
5
5
  end
6
6
 
data/lib/bard/backup.rb CHANGED
@@ -5,9 +5,9 @@ require "backhoe"
5
5
 
6
6
  module Bard
7
7
  module Backup
8
- def self.call s3_path, access_key:, secret_key:, now: Time.now.utc
8
+ def self.call s3_path, access_key:, secret_key:, region: "us-west-2", now: Time.now.utc
9
9
  dumper = Backhoe
10
- s3_dir = S3Dir.new(path: s3_path, access_key:, secret_key:)
10
+ s3_dir = S3Dir.new(path: s3_path, access_key:, secret_key:, region:)
11
11
  Controller.new(dumper, s3_dir, now).call
12
12
  Deleter.new(s3_dir, now).call
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-25 00:00:00.000000000 Z
11
+ date: 2024-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backhoe