gitlab-org--gitlab-foss/spec/uploaders
Sean McGivern ec85debaf5 Speed up avatar URLs with object storage
With object storage enabled, calling `#filename` on an upload does this:

1. Call the `#filename` method on the CarrierWave object.
2. Generate the URL for that object.
3. If the uploader isn't public, do so by generating an authenticated
   URL, including signing that request.

That's all correct behaviour, but for the case where we use `#filename`,
it's typically to generate a GitLab URL. That URL doesn't need to be
signed because we do our own auth.

Signing the URLs can be very expensive, especially in batch (say, we
need to get the avatar URLs for 150 users in one request). It's all
unnecessary work. If we used the `RecordsUploads` concern, we have
already recorded a `path` in the database. That `path` is actually
generated from CarrierWave's `#filename` at upload time, so we don't
need to recompute it - we can just use it and strip off the prefix if
it's available.

On a sample users autocomplete URL, at least 10% of the time before this
change went to signing URLs. After this change, we spend no time in URL
signing, and still get the correct results.
2019-04-04 11:32:42 +01:00
..
workers/object_storage apply feedback 2018-06-12 11:22:35 -04:00
attachment_uploader_spec.rb Make all uses of fixture_file_upload use relative paths 2018-06-07 09:54:41 -05:00
avatar_uploader_spec.rb fix avatar uploader error 2018-09-10 17:41:51 +02:00
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 Fix and add specs for testing metadata entry 2018-07-09 14:19:52 +02:00
import_export_uploader_spec.rb Enable the Layout/ExtraSpacing cop 2019-01-24 13:05:45 +01:00
job_artifact_uploader_spec.rb Squashed commit of the following: 2018-08-27 09:12:02 +02:00
legacy_artifact_uploader_spec.rb Correct more usages of non-relative fixture_file_upload paths 2018-06-07 09:54:41 -05:00
lfs_object_uploader_spec.rb Fix file_store for artifacts and lfs when saving 2018-05-01 22:27:54 +02:00
namespace_file_uploader_spec.rb Fix already initialized constant IDENTIFIER warning 2018-12-10 11:00:08 +05:00
object_storage_spec.rb Don't try to set any ACL on uploaded objects 2019-03-30 14:55:33 +01:00
personal_file_uploader_spec.rb Fix 404s with snippet uploads in object storage 2019-01-21 22:13:37 -08:00
records_uploads_spec.rb Speed up avatar URLs with object storage 2019-04-04 11:32:42 +01:00
uploader_helper_spec.rb Uploads to wiki stored inside the wiki git repository 2018-09-04 10:39:08 +00:00