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:
Régis Hanol
2014-07-08 20:46:08 +02:00
parent ba06a6b0d2
commit 7658b72556
3 changed files with 38 additions and 19 deletions

View File

@ -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