Fix 404s with snippet uploads in object storage
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 database for one of the
following paths:
:hash/:filename
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
.
Edited by Stan Hu