bard-backup 0.3.1 → 0.3.3

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: 760a50cd9995dcdb13d1e89906f3898a5eae0423e0f6945e33a851439e5a9354
4
- data.tar.gz: 95f7c3ccaa81fb55f8ac4e535c26a9260822131291f407a8ebf4bad4b7eab9be
3
+ metadata.gz: 452af7bfaa1d38372eb29a727e0b78200d479cb8f3eec98088aad4734bfae827
4
+ data.tar.gz: 7408415418eda357aceda59944720a63e50d19f10f34b29d43b2709ec713fd2e
5
5
  SHA512:
6
- metadata.gz: 96a4e68dc17386716e68f8d8c4c917e86388d1b3ffecce50951b2901ee12ce1b8560f86fc9450074dfcc4c54d90e8e0ed2e308ac27ac810576b0a339f180f469
7
- data.tar.gz: 4c9d2b692bf56286abedd0c8deb7ec443adebbfd95c0300127b37b951bb27d99d551f7922a0059d3e9c666bd833b7af52634a765a2344b36f03343d344c099c3
6
+ metadata.gz: 8c16a1f42236bfc41d42a68db41b1e7e806c737508a0b7b0aac5c87984107d5e77fd1446445b4daf1ba460c24e7ac6870eb62e612d49091febf74902325e3e22
7
+ data.tar.gz: cb10ae30ececa98bbf031ed4a6500cde3b73a5a1564891d39a517f4c7f252da27108432ba50cabf894160c81e489cbcf84d28c6fc592daf6f2d8cb21f7c4825d
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
 
@@ -5,7 +5,7 @@ module Bard
5
5
  filename = "#{now.iso8601}.sql.gz"
6
6
  path = "/tmp/#{filename}"
7
7
  dumper.dump path
8
- s3_dir.put path
8
+ s3_dir.mv path
9
9
  end
10
10
  end
11
11
  end
@@ -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,11 +16,16 @@ 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
+ def mv file_path, body: File.read(file_path)
25
+ put file_path, body: body
26
+ FileUtils.rm file_path
27
+ end
28
+
24
29
  def delete keys
25
30
  return if keys.empty?
26
31
  objects_to_delete = Array(keys).map { |key| { key: key } }
@@ -44,6 +49,7 @@ module Bard
44
49
  end
45
50
 
46
51
  def folder_prefix
52
+ return nil if !path.include?("/")
47
53
  path.split("/")[1..].join("/")
48
54
  end
49
55
 
@@ -51,7 +57,7 @@ module Bard
51
57
 
52
58
  def client
53
59
  Aws::S3::Client.new({
54
- region: "us-west-2",
60
+ region: region,
55
61
  access_key_id: access_key,
56
62
  secret_access_key: secret_key,
57
63
  })
@@ -1,6 +1,6 @@
1
1
  module Bard
2
2
  module Backup
3
- VERSION = "0.3.1"
3
+ VERSION = "0.3.3"
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.1
4
+ version: 0.3.3
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-26 00:00:00.000000000 Z
11
+ date: 2024-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backhoe