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-03-16 21:18:33 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-03-16 21:18:33 +0300
commitf64a639bcfa1fc2bc89ca7db268f594306edfd7c (patch)
treea2c3c2ebcc3b45e596949db485d6ed18ffaacfa1 /app/uploaders
parentbfbc3e0d6583ea1a91f627528bedc3d65ba4b10f (diff)
Add latest changes from gitlab-org/gitlab@13-10-stable-eev13.10.0-rc40
Diffstat (limited to 'app/uploaders')
-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