mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
BUGFIX: S3 backups failed when using a region
TRIVIAL: updated fog gem to latest version (1.22.1) BUGFIX: fixed algorithm used to remove old backups
This commit is contained in:
@ -10,8 +10,10 @@ class Backup
|
||||
end
|
||||
|
||||
def self.all
|
||||
backups = Dir.glob(File.join(Backup.base_directory, "*.tar.gz"))
|
||||
backups.sort.reverse.map { |backup| Backup.create_from_filename(File.basename(backup)) }
|
||||
Dir.glob(File.join(Backup.base_directory, "*.tar.gz"))
|
||||
.sort_by { |file| File.mtime(file) }
|
||||
.reverse
|
||||
.map { |backup| Backup.create_from_filename(File.basename(backup)) }
|
||||
end
|
||||
|
||||
def self.[](filename)
|
||||
@ -65,20 +67,27 @@ class Backup
|
||||
def self.remove_old
|
||||
all_backups = Backup.all
|
||||
return unless all_backups.size > SiteSetting.maximum_backups
|
||||
all_backups[SiteSetting.maximum_backups..-1].each {|b| b.remove}
|
||||
all_backups[SiteSetting.maximum_backups..-1].each(&:remove)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def s3_options
|
||||
{
|
||||
provider: 'AWS',
|
||||
aws_access_key_id: SiteSetting.s3_access_key_id,
|
||||
aws_secret_access_key: SiteSetting.s3_secret_access_key,
|
||||
region: SiteSetting.s3_region.blank? ? "us-east-1" : SiteSetting.s3_region,
|
||||
}
|
||||
end
|
||||
|
||||
def fog
|
||||
return @fog if @fog
|
||||
return unless SiteSetting.s3_access_key_id.present? &&
|
||||
SiteSetting.s3_secret_access_key.present? &&
|
||||
SiteSetting.s3_backup_bucket.present?
|
||||
require 'fog'
|
||||
@fog = Fog::Storage.new(provider: 'AWS',
|
||||
aws_access_key_id: SiteSetting.s3_access_key_id,
|
||||
aws_secret_access_key: SiteSetting.s3_secret_access_key)
|
||||
@fog = Fog::Storage.new(s3_options)
|
||||
end
|
||||
|
||||
def fog_directory
|
||||
|
Reference in New Issue
Block a user