Class: Mys3ql::S3
Instance Method Summary collapse
- #delete_bin_logs ⇒ Object
- #each_bin_log(after = nil, &block) ⇒ Object
-
#initialize(config) ⇒ S3
constructor
A new instance of S3.
- #retrieve(s3_file, local_file) ⇒ Object
- #store(file, dump = true) ⇒ Object
Methods included from Shell
Constructor Details
#initialize(config) ⇒ S3
8 9 10 |
# File 'lib/mys3ql/s3.rb', line 8 def initialize(config) @config = config end |
Instance Method Details
#delete_bin_logs ⇒ Object
22 23 24 25 26 27 |
# File 'lib/mys3ql/s3.rb', line 22 def delete_bin_logs each_bin_log do |file| file.delete log "s3: deleted #{file.key}" end end |
#each_bin_log(after = nil, &block) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/mys3ql/s3.rb', line 29 def each_bin_log(after = nil, &block) if after && after !~ /^\d{6}$/ puts 'Binary log file number must be 6 digits.' exit 1 end bucket.objects(prefix: bin_logs_prefix) .sort_by { |file| file.key[/\d+/].to_i } .select { |file| after.nil? || (file.key[/\d+/].to_i > after.to_i) } .each do |file| yield file end end |
#retrieve(s3_file, local_file) ⇒ Object
43 44 45 46 |
# File 'lib/mys3ql/s3.rb', line 43 def retrieve(s3_file, local_file) key = (s3_file == :latest) ? key_for(:latest) : s3_file.key get key, local_file end |
#store(file, dump = true) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# File 'lib/mys3ql/s3.rb', line 12 def store(file, dump = true) key = key_for(dump ? :dump : :bin_log, file) s3_file = save file, key if dump && s3_file copy_key = key_for :latest s3_file.copy_to bucket: bucket_name, key: copy_key log "s3: copied #{key} to #{copy_key}" end end |