gitlab-org--gitlab-foss/app/uploaders
Stan Hu a1f44c1b49 Fix incorrect prefix used in new uploads for personal snippets
https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/24550 fixed the
case where the wrong path on disk was being searched, but it
inadvertently ommitted the `/uploads/-/system` prefix when rendering the
Markdown for personal snippet uploads when they were stored directly in
object storage.

A personal snippet path is stored using FileUploader#upload_path.
The format for the path:

Local storage: :random_hex/:filename.
Object storage: personal_snippet/:id/:random_hex/:filename.

upload_paths represent the possible paths for a given identifier,
which will vary depending on whether the file is stored in local or
object storage. upload_path should match an element in upload_paths.

base_dir represents the path seen by the user in Markdown, and it
should always be prefixed with uploads/-/system.

store_dirs represent the paths that are actually used on disk. For
object storage, this should omit the prefix /uploads/-/system.

For example, consider the requested path
/uploads/-/system/personal_snippet/172/ff4ad5c2/file.png.

For local storage:

base_dir: uploads/-/system/personal_snippet/172
upload_path: ff4ad5c2/file.png
upload_paths: ["ff4ad5c2/file.png", "personal_snippet/172/ff4ad5c2/file.png"].
store_dirs: {1=>"uploads/-/system/personal_snippet/172/ff4ad5c2",
             2=>"personal_snippet/172/ff4ad5c2"}

For object storage:

upload_path: personal_snippet/172/ff4ad5c2/file.png

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/61671
2019-05-16 23:36:55 -07:00
..
attachment_uploader.rb Optimise upload path calls 2019-05-14 11:01:48 -05:00
avatar_uploader.rb Optimise upload path calls 2019-05-14 11:01:48 -05:00
external_diff_uploader.rb Allow MR diffs to be placed into an object store 2019-02-05 14:12:48 +00:00
favicon_uploader.rb
file_mover.rb Check snippet attached file to be moved is within designated directory 2019-02-21 16:44:44 +08:00
file_uploader.rb Fix incorrect prefix used in new uploads for personal snippets 2019-05-16 23:36:55 -07:00
gitlab_uploader.rb
import_export_uploader.rb Clean up CarrierWave's import/export files 2019-05-07 01:27:50 -07:00
job_artifact_uploader.rb
legacy_artifact_uploader.rb Drop legacy artifacts usage 2019-04-04 16:19:43 +07:00
lfs_object_uploader.rb
namespace_file_uploader.rb
object_storage.rb Remove deprecated uses of attribute_changed? 2019-04-30 15:24:25 +08:00
personal_file_uploader.rb Fix incorrect prefix used in new uploads for personal snippets 2019-05-16 23:36:55 -07:00
records_uploads.rb Speed up avatar URLs with object storage 2019-04-04 11:32:42 +01:00
uploader_helper.rb
workhorse.rb