Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-02-22 21:10:55 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-02-22 21:10:55 +0300
commit57f6fa3cd786acb4ead4b7a2d3aa43b6c7abbc58 (patch)
treea0eea3428f23270d4d6f843e3459022f03243f16 /app/uploaders/dependency_proxy
parent232e7582b0e81e95bd721ad8094fcb50ecbc8a04 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/uploaders/dependency_proxy')
-rw-r--r--app/uploaders/dependency_proxy/file_uploader.rb12
1 files changed, 12 insertions, 0 deletions
diff --git a/app/uploaders/dependency_proxy/file_uploader.rb b/app/uploaders/dependency_proxy/file_uploader.rb
index b67a22bae4d..c46539bafaa 100644
--- a/app/uploaders/dependency_proxy/file_uploader.rb
+++ b/app/uploaders/dependency_proxy/file_uploader.rb
@@ -3,6 +3,7 @@
class DependencyProxy::FileUploader < GitlabUploader
include ObjectStorage::Concern
+ before :cache, :set_content_type
storage_options Gitlab.config.dependency_proxy
alias_method :upload, :model
@@ -17,6 +18,17 @@ class DependencyProxy::FileUploader < GitlabUploader
private
+ # Docker manifests return a custom content type
+ # GCP will only use the content-type that is stored with the file
+ # and will not allow it to be overwritten when downloaded
+ # so we must store the custom content type in object storage.
+ # This does not apply to DependencyProxy::Blob uploads.
+ def set_content_type(file)
+ return unless model.class == DependencyProxy::Manifest
+
+ file.content_type = model.content_type
+ end
+
def dynamic_segment
Gitlab::HashedPath.new('dependency_proxy', model.group_id, 'files', model.id, root_hash: model.group_id)
end