bard-backup 0.3.2 → 0.4.0

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: 23ecd12f3233d3f91b3d2683931ae3b99251a85773da44ddad9607a584654592
4
- data.tar.gz: a2e1febf07c7e630be1b32d17f78eea4c31e298bd1c60defe983c39449e26a5c
3
+ metadata.gz: 71a87dace6348cc41462c0192446af581cb9253d218d4c32c0c98667fe26c73a
4
+ data.tar.gz: 86eac09b1520f87f7bedd20bff84afd94496416d715947ea49f6047fdc45ed72
5
5
  SHA512:
6
- metadata.gz: db8add94f2212367e0de47f8097ec8f4cf2bf7515049862e9e78450f062af6c25078f3c3bb62cb34f306b1d52343b777046a51176b802afb2d5fc3eed881549a
7
- data.tar.gz: a1305345c4a9516758bba2c169d68d07b2d95ad420e8b54b9e914d4bfb1320231dad9ceccc6a4855bdb2476ed7b77ccb1dc0b0b23aab3142d20da5a191bcd9af
6
+ metadata.gz: 40fa5aa6fa1ee989cad053b08a529173376ebb3d18ee38d72024a5bbe5a0fe0cd222698664791490edc799200e77f7df7685eec8d561c995925f597a0121f36b
7
+ data.tar.gz: 384b78be14d95ee94dafd9941242818b84b073acc11e6833ace1cd011f95583630aeef27d22428c5a1b9864175989bbe40d292196c1908d884461310f138aa81
@@ -1,11 +1,13 @@
1
+ require "backhoe"
2
+
1
3
  module Bard
2
4
  module Backup
3
- class Controller < Struct.new(:dumper, :s3_dir, :now)
4
- def call
5
+ class LocalBackhoe
6
+ def self.call s3_dir, now
5
7
  filename = "#{now.iso8601}.sql.gz"
6
8
  path = "/tmp/#{filename}"
7
- dumper.dump path
8
- s3_dir.put path
9
+ Backhoe.dump path
10
+ s3_dir.mv path
9
11
  end
10
12
  end
11
13
  end
@@ -21,6 +21,20 @@ module Bard
21
21
  })
22
22
  end
23
23
 
24
+ def presigned_url file_path
25
+ presigner = Aws::S3::Presigner.new(client: client)
26
+ presigner.presigned_url(
27
+ :put_object,
28
+ bucket: bucket_name,
29
+ key: [folder_prefix, File.basename(file_path)].compact.join("/"),
30
+ )
31
+ end
32
+
33
+ def mv file_path, body: File.read(file_path)
34
+ put file_path, body: body
35
+ FileUtils.rm file_path
36
+ end
37
+
24
38
  def delete keys
25
39
  return if keys.empty?
26
40
  objects_to_delete = Array(keys).map { |key| { key: key } }
@@ -1,6 +1,6 @@
1
1
  module Bard
2
2
  module Backup
3
- VERSION = "0.3.2"
3
+ VERSION = "0.4.0"
4
4
  end
5
5
  end
6
6
 
data/lib/bard/backup.rb CHANGED
@@ -1,14 +1,12 @@
1
- require "bard/backup/controller"
2
- require "bard/backup/deleter"
3
1
  require "bard/backup/s3_dir"
4
- require "backhoe"
2
+ require "bard/backup/local_backhoe"
3
+ require "bard/backup/deleter"
5
4
 
6
5
  module Bard
7
6
  module Backup
8
- def self.call s3_path, access_key:, secret_key:, region: "us-west-2", now: Time.now.utc
9
- dumper = Backhoe
7
+ def self.call s3_path, access_key:, secret_key:, region: "us-west-2", now: Time.now.utc, strategy: LocalBackhoe
10
8
  s3_dir = S3Dir.new(path: s3_path, access_key:, secret_key:, region:)
11
- Controller.new(dumper, s3_dir, now).call
9
+ strategy.call(s3_dir, now)
12
10
  Deleter.new(s3_dir, now).call
13
11
  end
14
12
  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.2
4
+ version: 0.4.0
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-28 00:00:00.000000000 Z
11
+ date: 2024-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backhoe
@@ -81,8 +81,8 @@ files:
81
81
  - Rakefile
82
82
  - lib/bard-backup.rb
83
83
  - lib/bard/backup.rb
84
- - lib/bard/backup/controller.rb
85
84
  - lib/bard/backup/deleter.rb
85
+ - lib/bard/backup/local_backhoe.rb
86
86
  - lib/bard/backup/s3_dir.rb
87
87
  - lib/bard/backup/version.rb
88
88
  - sig/bard/backup.rbs