|
|
|
@@ -0,0 +1,44 @@ |
|
|
|
namespace :copy_attachment_files do |
|
|
|
desc "copy_attachment_files to out path" |
|
|
|
task done: :environment do |
|
|
|
cp_path = ENV['path'] || "/home/pdl/cp_files" |
|
|
|
container_type = ENV['_type'] |
|
|
|
next if container_type.blank? |
|
|
|
Dir.mkdir(cp_path) unless Dir.exist?(cp_path) |
|
|
|
attachments = Attachment.where(container_type: container_type) |
|
|
|
attachments.each do |file| |
|
|
|
file_path = File.join(file.disk_directory.to_s, file.disk_filename.to_s) |
|
|
|
next unless File.exist?("#{Rails.root.to_s}/files/#{file_path}") |
|
|
|
dir_path_year = "#{cp_path}/#{file.disk_directory.to_s.split("/")[0]}" |
|
|
|
Dir.mkdir(dir_path_year) unless Dir.exist?(dir_path_year) |
|
|
|
dir_path = "#{cp_path}/#{file.disk_directory}" |
|
|
|
Dir.mkdir(dir_path) unless Dir.exist?(dir_path) |
|
|
|
puts "cp #{Rails.root.to_s + File.join("/files/", file_path)} #{dir_path}" |
|
|
|
system("cp #{Rails.root.to_s + File.join("/files/", file_path)} #{dir_path}") |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
task memo: :environment do |
|
|
|
cp_path = ENV['path'] || "/home/pdl/cp_files" |
|
|
|
memos = Memo.where("content like '%/attachments/send_file/%'") |
|
|
|
att_ids = [] |
|
|
|
memos.each do |memo| |
|
|
|
# 附件的格式为(/api/attachments/ + 附件id)的形式,提取出id进行附件属性关联,做附件访问权限控制 |
|
|
|
att_ids += memo.content.to_s.scan(/\(\/attachments\/send_file\/.+\)/).map{|s|s.match(/\d+/)[0]} |
|
|
|
att_ids += memo.content.to_s.scan(/\/attachments\/send_file\/.+\"/).map{|s|s.match(/\d+/)[0]} |
|
|
|
att_ids += memo.content.to_s.scan(/\/attachments\/send_file\/\d+/).map{|s|s.match(/\d+/)[0]} |
|
|
|
end |
|
|
|
if att_ids.present? |
|
|
|
attachments = Attachment.where(id: att_ids) |
|
|
|
attachments.each do |file| |
|
|
|
file_path = File.join(file.disk_directory, file.disk_filename) |
|
|
|
dir_path_year = "#{cp_path}/#{file.disk_directory.to_s.split("/")[0]}" |
|
|
|
Dir.mkdir(dir_path_year) unless Dir.exist?(dir_path_year) |
|
|
|
dir_path = "#{cp_path}/#{file.disk_directory}" |
|
|
|
Dir.mkdir(dir_path) unless Dir.exist?(dir_path) |
|
|
|
puts "cp #{Rails.root.to_s + File.join("/files/", file_path)} #{dir_path}" |
|
|
|
system("cp #{Rails.root.to_s + File.join("/files/", file_path)} #{dir_path}") |
|
|
|
end |
|
|
|
end |
|
|
|
end |
|
|
|
end |