mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 16:11:08 +08:00
FIX: Restructure temp/ folders for direct S3 uploads (#14137)
Previously we had temp/ in the middle of the S3 key path like so * /uploads/default/temp/randomstring/test.png (normal site) * /sitename/uploads/default/temp/randomstring/test.png (s3 folder path site) * /standard10/uploads/sitename/temp/randomstring/test.png (multisite site) However this necessitates making a lifecycle rule to clean up incomplete S3 multipart uploads for every site, something which we cannot do. It makes much more sense to have a structure with /temp at the start of the key, which is what this commit does: * /temp/uploads/default/randomstring/test.png (normal site) * /temp/sitename/uploads/default/randomstring/test.png (s3 folder path site) * /temp/standard10/uploads/sitename/randomstring/test.png (multisite site)
This commit is contained in:
@ -41,10 +41,11 @@ module FileStore
|
||||
File.join(path, "test_#{ENV['TEST_ENV_NUMBER'].presence || '0'}")
|
||||
end
|
||||
|
||||
def temporary_upload_path(file_name)
|
||||
def temporary_upload_path(file_name, folder_prefix: "")
|
||||
File.join(
|
||||
upload_path,
|
||||
TEMPORARY_UPLOAD_PREFIX,
|
||||
folder_prefix,
|
||||
upload_path,
|
||||
SecureRandom.hex,
|
||||
file_name
|
||||
)
|
||||
|
@ -236,8 +236,7 @@ module FileStore
|
||||
end
|
||||
|
||||
def temporary_upload_path(file_name)
|
||||
path = super(file_name)
|
||||
s3_bucket_folder_path.nil? ? path : File.join(s3_bucket_folder_path, path)
|
||||
s3_bucket_folder_path.nil? ? super(file_name) : super(file_name, folder_prefix: s3_bucket_folder_path)
|
||||
end
|
||||
|
||||
def object_from_path(path)
|
||||
|
Reference in New Issue
Block a user