Merge branch 'master' of https://github.com/r888888888/danbooru
This commit is contained in:
@@ -16,7 +16,8 @@ class AmazonBackup < ActiveRecord::Base
|
|||||||
Post.where("id > ?", last_id).limit(200).order("id").each do |post|
|
Post.where("id > ?", last_id).limit(200).order("id").each do |post|
|
||||||
AWS::S3::Base.establish_connection!(
|
AWS::S3::Base.establish_connection!(
|
||||||
:access_key_id => Danbooru.config.amazon_s3_access_key_id,
|
:access_key_id => Danbooru.config.amazon_s3_access_key_id,
|
||||||
:secret_access_key => Danbooru.config.amazon_s3_secret_access_key
|
:secret_access_key => Danbooru.config.amazon_s3_secret_access_key,
|
||||||
|
:server => "s3.amazonaws.com"
|
||||||
)
|
)
|
||||||
|
|
||||||
if File.exists?(post.file_path)
|
if File.exists?(post.file_path)
|
||||||
@@ -24,7 +25,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)
|
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
|
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)
|
AWS::S3::S3Object.store("preview/#{post.md5}.jpg", open(post.preview_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -32,7 +33,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)
|
AWS::S3::S3Object.store("large/#{post.md5}.jpg", open(post.large_file_path, "rb"), Danbooru.config.amazon_s3_bucket_name)
|
||||||
end
|
end
|
||||||
|
|
||||||
AmazonBackup.update_id(last_id)
|
AmazonBackup.update_id(post.id)
|
||||||
end
|
end
|
||||||
rescue Exception => x
|
rescue Exception => x
|
||||||
# probably some network error, retry next time
|
# probably some network error, retry next time
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ module Danbooru
|
|||||||
class Configuration
|
class Configuration
|
||||||
# The version of this Danbooru.
|
# The version of this Danbooru.
|
||||||
def version
|
def version
|
||||||
"2.39.0"
|
"2.40.0"
|
||||||
end
|
end
|
||||||
|
|
||||||
# The name of this Danbooru.
|
# The name of this Danbooru.
|
||||||
@@ -298,6 +298,10 @@ module Danbooru
|
|||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def amazon_s3_bucket_name
|
||||||
|
"danbooru"
|
||||||
|
end
|
||||||
|
|
||||||
def enable_dimension_autotagging
|
def enable_dimension_autotagging
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ end
|
|||||||
access_key = open("#{home}/.s3/access_key").read.strip
|
access_key = open("#{home}/.s3/access_key").read.strip
|
||||||
secret_access_key = open("#{home}/.s3/secret_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
|
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
|
backup = Dir["/var/www/danbooru2/shared/backup/db-*.dump"].sort.last
|
||||||
data = File.open(backup, "rb")
|
data = File.open(backup, "rb")
|
||||||
filename = data.mtime.strftime("db-%Y-%m-%d-%H-%M")
|
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}"
|
puts "Uploaded #{backup} as #{filename}"
|
||||||
|
|||||||
Reference in New Issue
Block a user