summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2019-04-04 12:31:16 +0000
committerKamil Trzciński <ayufan@ayufan.eu>2019-04-04 12:31:16 +0000
commitc60d0efe0d2f2f0bdd1e626c378fe655461c5f22 (patch)
tree2a203b9618da88c89ad759be079949d0293e4d0d
parent2fdc7c1fd6884cf120bf82cb870f66d1bf73811a (diff)
parentec85debaf51067cc78d54188ec1eef94342d5a8b (diff)
downloadgitlab-ce-c60d0efe0d2f2f0bdd1e626c378fe655461c5f22.tar.gz
Merge branch 'stop-signing-avatar-paths' into 'master'
Speed up avatar URLs with object storage Closes #43065 See merge request gitlab-org/gitlab-ce!26858
-rw-r--r--app/uploaders/records_uploads.rb4
-rw-r--r--changelogs/unreleased/stop-signing-avatar-paths.yml5
-rw-r--r--spec/uploaders/records_uploads_spec.rb9
3 files changed, 18 insertions, 0 deletions
diff --git a/app/uploaders/records_uploads.rb b/app/uploaders/records_uploads.rb
index 9a243e07936..00b51f92b12 100644
--- a/app/uploaders/records_uploads.rb
+++ b/app/uploaders/records_uploads.rb
@@ -46,6 +46,10 @@ module RecordsUploads
File.join(store_dir, filename.to_s)
end
+ def filename
+ upload&.path ? File.basename(upload.path) : super
+ end
+
private
# rubocop: disable CodeReuse/ActiveRecord
diff --git a/changelogs/unreleased/stop-signing-avatar-paths.yml b/changelogs/unreleased/stop-signing-avatar-paths.yml
new file mode 100644
index 00000000000..2c2493f0f21
--- /dev/null
+++ b/changelogs/unreleased/stop-signing-avatar-paths.yml
@@ -0,0 +1,5 @@
+---
+title: Speed up generation of avatar URLs when using object storage
+merge_request:
+author:
+type: performance
diff --git a/spec/uploaders/records_uploads_spec.rb b/spec/uploaders/records_uploads_spec.rb
index 3592a11360d..ab98976ec27 100644
--- a/spec/uploaders/records_uploads_spec.rb
+++ b/spec/uploaders/records_uploads_spec.rb
@@ -94,4 +94,13 @@ describe RecordsUploads do
expect { uploader.remove! }.to change { Upload.count }.from(1).to(0)
end
end
+
+ describe '#filename' do
+ it 'gets the filename from the path recorded in the database, not CarrierWave' do
+ uploader.store!(upload_fixture('rails_sample.jpg'))
+ expect_any_instance_of(GitlabUploader).not_to receive(:filename)
+
+ expect(uploader.filename).to eq('rails_sample.jpg')
+ end
+ end
end