gitlab-org--gitlab-foss/spec
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
..
bin
config
controllers Merge branch 'reg-captcha-flag' into 'master' 2019-05-16 14:19:01 +00:00
db
dependencies
factories Optimise upload path calls 2019-05-14 11:01:48 -05:00
features Fix an error in projects admin when statistics are missing 2019-05-16 14:59:21 +02:00
finders
fixtures
frontend Merge branch 'fe-use-process-timer-in-jest-timeout' into 'master' 2019-05-16 21:59:01 +00:00
graphql
helpers Include MR information if possible when emailing notification of closing an issue 2019-05-16 11:59:02 +00:00
initializers
javascripts Merge branch 'diff-whitespace-setting-changes' into 'master' 2019-05-16 10:13:04 +00:00
lib Add Let's Encrypt client 2019-05-16 09:32:25 +00:00
mailers
migrations
models Merge branch 'jc-omit-count-diverging-commits-max' into 'master' 2019-05-16 15:27:50 +00:00
policies
presenters
rack_servers
requests
routing
rubocop
serializers
services Include MR information if possible when emailing notification of closing an issue 2019-05-16 11:59:02 +00:00
sidekiq/cron
support Add Let's Encrypt client 2019-05-16 09:32:25 +00:00
tasks
uploaders Fix incorrect prefix used in new uploads for personal snippets 2019-05-16 23:36:55 -07:00
validators
views
workers
factories_spec.rb
fast_spec_helper.rb
rails_helper.rb
rake_helper.rb
simplecov_env.rb
spec_helper.rb