DEV: Split max decompressed setting for themes and backups (#8179)

This commit is contained in:
Roman Rizzi
2019-10-11 14:38:10 -03:00
committed by GitHub
parent f63db1c4c8
commit 01bc465db8
8 changed files with 47 additions and 14 deletions

View File

@ -20,10 +20,10 @@ module Compression
end
end
def decompress(dest_path, compressed_file_path, allow_non_root_folder: false)
def decompress(dest_path, compressed_file_path, max_size, allow_non_root_folder: false)
@strategies.reverse.reduce(compressed_file_path) do |to_decompress, strategy|
last_extension = strategy.extension
strategy.decompress(dest_path, to_decompress, allow_non_root_folder: allow_non_root_folder)
strategy.decompress(dest_path, to_decompress, max_size, allow_non_root_folder: allow_non_root_folder)
to_decompress.gsub(last_extension, '')
end
end

View File

@ -9,11 +9,11 @@ module Compression
file_name.include?(extension)
end
def decompress(dest_path, compressed_file_path, allow_non_root_folder: false)
def decompress(dest_path, compressed_file_path, max_size, allow_non_root_folder: false)
sanitized_compressed_file_path = sanitize_path(compressed_file_path)
get_compressed_file_stream(sanitized_compressed_file_path) do |compressed_file|
available_size = calculate_available_size
available_size = calculate_available_size(max_size)
entries_of(compressed_file).each do |entry|
entry_path = build_entry_path(
@ -59,8 +59,8 @@ module Compression
end
end
def calculate_available_size
1024**2 * (SiteSetting.decompressed_file_max_size_mb / 1.049) # Mb to Mib
def calculate_available_size(max_size)
1024**2 * (max_size / 1.049) # Mb to Mib
end
def entries_of(compressed_file)