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 Enable frozen string in apps/validators/*.rb 2018-07-05 00:13:58 -07:00
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 Backport of "Use Geo log to remove files when migrated to object storage" 2018-10-03 15:09:16 +00:00
import_export_uploader.rb Clean up CarrierWave's import/export files 2019-05-07 01:27:50 -07:00
job_artifact_uploader.rb Backport of "Use Geo log to remove files when migrated to object storage" 2018-10-03 15:09:16 +00:00
legacy_artifact_uploader.rb Drop legacy artifacts usage 2019-04-04 16:19:43 +07:00
lfs_object_uploader.rb Backport of "Use Geo log to remove files when migrated to object storage" 2018-10-03 15:09:16 +00:00
namespace_file_uploader.rb Fix workhorse temp path for namespace uploads 2018-09-11 15:45:46 +02:00
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 Uploads to wiki stored inside the wiki git repository 2018-09-04 10:39:08 +00:00
workhorse.rb Enable frozen string in apps/validators/*.rb 2018-07-05 00:13:58 -07:00