fix amazonbackup script, trap on epipe exception for db backup

This commit is contained in:
r888888888
2014-01-10 16:35:40 -08:00
parent cb629613bd
commit 782bdd4627
3 changed files with 20 additions and 4 deletions

View File

@@ -24,7 +24,7 @@ class AmazonBackup < ActiveRecord::Base
AWS::S3::S3Object.store(File.basename(post.file_path), open(post.file_path, "rb"), Danbooru.config.amazon_s3_bucket_name, "Content-MD5" => base64_md5)
end
if post.image? && File.exists?(post.preview_file_path)
if post.is_image? && File.exists?(post.preview_file_path)
AWS::S3::S3Object.store("preview/#{post.md5}.jpg", open(post.preview_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
end
@@ -32,7 +32,7 @@ class AmazonBackup < ActiveRecord::Base
AWS::S3::S3Object.store("large/#{post.md5}.jpg", open(post.large_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
end
AmazonBackup.update_id(last_id)
AmazonBackup.update_id(post.id)
end
rescue Exception => x
# probably some network error, retry next time

View File

@@ -298,6 +298,10 @@ module Danbooru
nil
end
def amazon_s3_bucket_name
"danbooru"
end
def enable_dimension_autotagging
true
end

View File

@@ -20,7 +20,7 @@ end
access_key = open("#{home}/.s3/access_key").read.strip
secret_access_key = open("#{home}/.s3/secret_access_key").read.strip
AWS::S3::Base.establish_connection!(:access_key_id => access_key, :secret_access_key => secret_access_key)
AWS::S3::Base.establish_connection!(:access_key_id => access_key, :secret_access_key => secret_access_key, :server => "s3.amazonaws.com")
current_backups = AWS::S3::Bucket.find("danbooru-backup").objects.map {|x| x.key}.select {|x| x =~ /^db-/}.sort.reverse
@@ -34,5 +34,17 @@ end
backup = Dir["/var/www/danbooru2/shared/backup/db-*.dump"].sort.last
data = File.open(backup, "rb")
filename = data.mtime.strftime("db-%Y-%m-%d-%H-%M")
AWS::S3::S3Object.store(filename, data, "danbooru-backup", :access => :private)
tries = 0
begin
AWS::S3::S3Object.store(filename, data, "danbooru-backup", :access => :private)
rescue Errno::EPIPE
tries += 1
if tries > 3
raise
else
retry
end
end
puts "Uploaded #{backup} as #{filename}"