Skip to content
Snippets Groups Projects
  1. Mar 04, 2020
  2. Oct 22, 2019
  3. May 17, 2019
    • Stan Hu's avatar
      Fix incorrect prefix used in new uploads for personal snippets · a1f44c1b
      Stan Hu authored
      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
      a1f44c1b
  4. Jan 22, 2019
    • Stan Hu's avatar
      Fix 404s with snippet uploads in object storage · 940ad0c7
      Stan Hu authored
      Previously, an HTTP request for
      `/uploads/-/system/personal_snippet/:snippet_id/:hash/:filename` would
      look for an uploader of `PersonalFileUploader` class and use
      `PersonalFileUploader#upload_paths` to search the datbase for one of the
      following paths:
      
      1. `:hash/:filename`
      2. `uploads/-/system/personal_snippet/:id/:hash/:filename`
      
      However, when the upload were stored in object storage,
      `PersonalFileUploader#store_dirs` stored the path as:
      
      `personal_snippet/:snippet_id/:hash`
      
      The extraneous `uploads/-/system` prefix prevented the path from being
      matched, and uploads in object storage would return a 404 error. Uploads
      in local storage would work fine.
      
      To fix this, we set the `#base_dir` properly so that `#upload_paths`
      generates the right value for object storage. Note that this also makes
      `#store_dirs` do the right thing in `FileUploader`.
      
      Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/52595
      940ad0c7
  5. Dec 10, 2018
  6. Jun 07, 2018
  7. Mar 26, 2018
  8. Feb 28, 2018
  9. Feb 01, 2018
  10. Aug 11, 2017
  11. Aug 02, 2017
  12. Jul 20, 2017
  13. May 02, 2017
Loading