gitlab-org--gitlab-foss/spec/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
..
workers/object_storage
attachment_uploader_spec.rb
avatar_uploader_spec.rb
external_diff_uploader_spec.rb Allow MR diffs to be placed into an object store 2019-02-05 14:12:48 +00:00
file_mover_spec.rb Check snippet attached file to be moved is within designated directory 2019-02-21 16:44:44 +08:00
file_uploader_spec.rb Enable the Layout/ExtraSpacing cop 2019-01-24 13:05:45 +01:00
gitlab_uploader_spec.rb
import_export_uploader_spec.rb Clean up CarrierWave's import/export files 2019-05-07 01:27:50 -07:00
job_artifact_uploader_spec.rb
legacy_artifact_uploader_spec.rb
lfs_object_uploader_spec.rb
namespace_file_uploader_spec.rb
object_storage_spec.rb Optimise upload path calls 2019-05-14 11:01:48 -05:00
personal_file_uploader_spec.rb Fix incorrect prefix used in new uploads for personal snippets 2019-05-16 23:36:55 -07:00
records_uploads_spec.rb Autocorrect with RSpec/ExampleWording cop 2019-04-05 08:43:27 +00:00
uploader_helper_spec.rb