Class: BackupRestore::UploadsRestorer
- Inherits:
-
Object
- Object
- BackupRestore::UploadsRestorer
- Defined in:
- lib/backup_restore/uploads_restorer.rb
Constant Summary collapse
- S3_ENDPOINT_REGEX =
/\.s3(?:\.dualstack\.[a-z0-9\-]+?|[.\-][a-z0-9\-]+?)?\.amazonaws\.com/
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(logger) ⇒ UploadsRestorer
constructor
A new instance of UploadsRestorer.
- #restore(tmp_directory) ⇒ Object
Constructor Details
#initialize(logger) ⇒ UploadsRestorer
Returns a new instance of UploadsRestorer.
24 25 26 |
# File 'lib/backup_restore/uploads_restorer.rb', line 24 def initialize(logger) @logger = logger end |
Class Method Details
.s3_regex_string(s3_base_url) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/backup_restore/uploads_restorer.rb', line 11 def self.s3_regex_string(s3_base_url) clean_url = s3_base_url.sub(S3_ENDPOINT_REGEX, ".s3.amazonaws.com") regex_string = clean_url .split(".s3.amazonaws.com") .map { |s| Regexp.escape(s) } .insert(1, S3_ENDPOINT_REGEX.source) .join("") [regex_string, clean_url] end |
Instance Method Details
#restore(tmp_directory) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/backup_restore/uploads_restorer.rb', line 28 def restore(tmp_directory) upload_directories = Dir .glob(File.join(tmp_directory, "uploads", "*")) .reject { |path| File.basename(path).start_with?("PaxHeaders") } if upload_directories.count > 1 raise UploadsRestoreError.new( "Could not find uploads, because the uploads " \ "directory contains multiple folders.", ) end @tmp_uploads_path = upload_directories.first return if @tmp_uploads_path.blank? @previous_db_name = BackupMetadata.value_for("db_name") || File.basename(@tmp_uploads_path) @current_db_name = RailsMultisite::ConnectionManagement.current_db backup_contains_optimized_images = File.exist?(File.join(@tmp_uploads_path, "optimized")) remap_uploads restore_uploads generate_optimized_images unless backup_contains_optimized_images rebake_posts_with_uploads end |