Commit f55ceb05 authored by Micaël Bergeron's avatar Micaël Bergeron

fix the failing specs

parent fb12eaef
...@@ -64,8 +64,9 @@ module UploadsActions ...@@ -64,8 +64,9 @@ module UploadsActions
def build_uploader_from_upload def build_uploader_from_upload
return nil unless params[:secret] && params[:filename] return nil unless params[:secret] && params[:filename]
upload_path = uploader_class.upload_path(params[:secret], params[:filename]) upload_paths = uploader_class.new(model, secret: params[:secret])
upload = Upload.find_by(uploader: uploader_class.to_s, path: upload_path) .upload_paths(params[:filename])
upload = Upload.find_by(uploader: uploader_class.to_s, path: upload_paths)
upload&.build_uploader upload&.build_uploader
end end
......
...@@ -32,8 +32,11 @@ class FileUploader < GitlabUploader ...@@ -32,8 +32,11 @@ class FileUploader < GitlabUploader
) )
end end
def self.base_dir(model) def self.base_dir(model, store = Store::LOCAL)
model_path_segment(model) decorated_model = model
decorated_model = Storage::HashedProject.new(model) if store == Store::REMOTE
model_path_segment(decorated_model)
end end
# used in migrations and import/exports # used in migrations and import/exports
...@@ -64,6 +67,13 @@ class FileUploader < GitlabUploader ...@@ -64,6 +67,13 @@ class FileUploader < GitlabUploader
SecureRandom.hex SecureRandom.hex
end end
def upload_paths(filename)
[
File.join(secret, filename),
File.join(base_dir(Store::REMOTE), secret, filename)
]
end
attr_accessor :model attr_accessor :model
def initialize(model, mounted_as = nil, **uploader_context) def initialize(model, mounted_as = nil, **uploader_context)
...@@ -75,10 +85,8 @@ class FileUploader < GitlabUploader ...@@ -75,10 +85,8 @@ class FileUploader < GitlabUploader
# enforce the usage of Hashed storage when storing to # enforce the usage of Hashed storage when storing to
# remote store as the FileMover doesn't support OS # remote store as the FileMover doesn't support OS
def base_dir def base_dir(store = nil)
model = file_storage? ? @model : Storage::HashedProject.new(@model) self.class.base_dir(@model, store || object_store)
self.class.base_dir(model)
end end
# we don't need to know the actual path, an uploader instance should be # we don't need to know the actual path, an uploader instance should be
...@@ -88,7 +96,8 @@ class FileUploader < GitlabUploader ...@@ -88,7 +96,8 @@ class FileUploader < GitlabUploader
end end
def upload_path def upload_path
if file_storage? # Legacy if file_storage?
# Legacy path relative to project.full_path
File.join(dynamic_segment, identifier) File.join(dynamic_segment, identifier)
else else
File.join(store_dir, identifier) File.join(store_dir, identifier)
...@@ -97,8 +106,8 @@ class FileUploader < GitlabUploader ...@@ -97,8 +106,8 @@ class FileUploader < GitlabUploader
def store_dirs def store_dirs
{ {
Store::LOCAL => local_store_dir = File.join(base_dir, dynamic_segment), Store::LOCAL => File.join(base_dir, dynamic_segment),
Store::REMOTE => local_store_dir Store::REMOTE => File.join(base_dir(ObjectStorage::Store::REMOTE), dynamic_segment)
} }
end end
......
...@@ -4,7 +4,7 @@ class NamespaceFileUploader < FileUploader ...@@ -4,7 +4,7 @@ class NamespaceFileUploader < FileUploader
options.storage_path options.storage_path
end end
def self.base_dir(model) def self.base_dir(model, _store = nil)
File.join(options.base_dir, 'namespace', model_path_segment(model)) File.join(options.base_dir, 'namespace', model_path_segment(model))
end end
......
...@@ -4,7 +4,7 @@ class PersonalFileUploader < FileUploader ...@@ -4,7 +4,7 @@ class PersonalFileUploader < FileUploader
options.storage_path options.storage_path
end end
def self.base_dir(model) def self.base_dir(model, _store = nil)
File.join(options.base_dir, model_path_segment(model)) File.join(options.base_dir, model_path_segment(model))
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment