mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 03:36:18 +08:00
FIX: skip upload recovery if file not found in s3
This commit is contained in:
@ -85,20 +85,24 @@ class S3Inventory
|
|||||||
result = connection.exec("SELECT * FROM #{table_name} WHERE key LIKE '%original/%/#{sha1}%'")
|
result = connection.exec("SELECT * FROM #{table_name} WHERE key LIKE '%original/%/#{sha1}%'")
|
||||||
|
|
||||||
if result.count >= 1
|
if result.count >= 1
|
||||||
key = result[0]["key"]
|
begin
|
||||||
data = @s3_helper.object(key).data
|
key = result[0]["key"]
|
||||||
filename = (data.content_disposition&.match(/filename=\"(.*)\"/) || [])[1]
|
data = @s3_helper.object(key).data
|
||||||
|
filename = (data.content_disposition&.match(/filename=\"(.*)\"/) || [])[1]
|
||||||
|
|
||||||
upload = Upload.new(
|
upload = Upload.new(
|
||||||
user_id: Discourse.system_user.id,
|
user_id: Discourse.system_user.id,
|
||||||
original_filename: filename || File.basename(key),
|
original_filename: filename || File.basename(key),
|
||||||
filesize: data.content_length,
|
filesize: data.content_length,
|
||||||
url: File.join(Discourse.store.absolute_base_url, key),
|
url: File.join(Discourse.store.absolute_base_url, key),
|
||||||
sha1: sha1,
|
sha1: sha1,
|
||||||
etag: result[0]["etag"]
|
etag: result[0]["etag"]
|
||||||
)
|
)
|
||||||
upload.save!(validate: false)
|
upload.save!(validate: false)
|
||||||
upload_id = upload.id
|
upload_id = upload.id
|
||||||
|
rescue Aws::S3::Errors::NotFound
|
||||||
|
next
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
upload_id
|
upload_id
|
||||||
|
Reference in New Issue
Block a user