|
|
|
@@ -32,7 +32,7 @@ class AttachmentsController < ApplicationController |
|
|
|
def get_file |
|
|
|
normal_status(-1, "参数缺失") if params[:download_url].blank? |
|
|
|
url = base_url.starts_with?("https:") ? params[:download_url].to_s.gsub("http:", "https:") : params[:download_url].to_s |
|
|
|
md5_file = Base64.strict_encode64(params[:download_url]) |
|
|
|
md5_file = Digest::MD5.hexdigest(params[:download_url]) |
|
|
|
FileUtils.mkdir_p("#{Rails.root}#{EduSetting.get("attachment_folder")}gitea/") unless Dir.exists?("#{Rails.root}#{EduSetting.get("attachment_folder")}gitea/") |
|
|
|
tmp_path = "#{Rails.root}#{EduSetting.get("attachment_folder")}gitea/#{Time.now.strftime('%Y%m%d')}-#{md5_file}" |
|
|
|
cache_key ="get_file:#{Time.now.strftime('%Y%m%d')}:#{md5_file}" |
|
|
|
@@ -51,20 +51,16 @@ class AttachmentsController < ApplicationController |
|
|
|
Rails.logger.info(filepath) |
|
|
|
request_url = [domain, api_url, URI.encode(url), URI.escape(filepath), "?ref=#{URI.escape(ref.split('ref=')[1])}&access_token=#{User.where(admin: true).take&.gitea_token}"].join |
|
|
|
Rails.logger.info("request_url===#{request_url}") |
|
|
|
response = Faraday.get(request_url) |
|
|
|
file = Util.download_file(request_url, tmp_path) |
|
|
|
filename = filepath |
|
|
|
else |
|
|
|
response = Faraday.get(URI.encode(url)) |
|
|
|
file = Util.download_file(URI.encode(url), tmp_path) |
|
|
|
filename = params[:download_url].to_s.split("/").pop() |
|
|
|
end |
|
|
|
if value.to_i == 0 |
|
|
|
File.open(tmp_path, 'wb') do |file| |
|
|
|
file.write(response.body) |
|
|
|
end |
|
|
|
end |
|
|
|
value = value.to_i + 1 |
|
|
|
Rails.cache.write(cache_key, value, expires_in: 1.day) |
|
|
|
send_data(response.body.force_encoding("UTF-8"), filename: filename, type: "application/octet-stream", disposition: 'attachment') |
|
|
|
# send_data(response.body.force_encoding("UTF-8"), filename: filename, type: "application/octet-stream", disposition: 'attachment') |
|
|
|
send_data(file, filename: filename, type: "application/octet-stream", disposition: 'attachment') |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
|