From 83c96d734be12025402aa6ae896cc7aa7fc39673 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt Date: Tue, 2 Oct 2018 11:01:19 +0200 Subject: [PATCH] Revert "use fileuploader dynamic path method in uploads manager and add spec" This reverts commit 07ec2c7bd00e6d0487e3f81864af982ec73365b2. --- app/uploaders/file_uploader.rb | 8 ++------ lib/gitlab/import_export/uploads_manager.rb | 7 ++++++- spec/uploaders/file_uploader_spec.rb | 9 --------- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb index e90599f2505..8170830e21b 100644 --- a/app/uploaders/file_uploader.rb +++ b/app/uploaders/file_uploader.rb @@ -15,7 +15,7 @@ class FileUploader < GitlabUploader prepend ObjectStorage::Extension::RecordsUploads MARKDOWN_PATTERN = %r{\!?\[.*?\]\(/uploads/(?[0-9a-f]{32})/(?.*?)\)} - DYNAMIC_PATH_PATTERN = %r{.*(?\h{32})/(?.*)} + DYNAMIC_PATH_PATTERN = %r{(?\h{32})/(?.*)} after :remove, :prune_store_dir @@ -67,10 +67,6 @@ def self.generate_secret SecureRandom.hex end - def self.extract_dynamic_path(path) - DYNAMIC_PATH_PATTERN.match(path) - end - def upload_paths(identifier) [ File.join(secret, identifier), @@ -137,7 +133,7 @@ def upload=(value) return if apply_context!(value.uploader_context) # fallback to the regex based extraction - if matches = self.class.extract_dynamic_path(value.path) + if matches = DYNAMIC_PATH_PATTERN.match(value.path) @secret = matches[:secret] @identifier = matches[:identifier] end diff --git a/lib/gitlab/import_export/uploads_manager.rb b/lib/gitlab/import_export/uploads_manager.rb index e232198150a..5b37a6f03ef 100644 --- a/lib/gitlab/import_export/uploads_manager.rb +++ b/lib/gitlab/import_export/uploads_manager.rb @@ -38,7 +38,12 @@ def restore private def add_upload(upload) - uploader_context = FileUploader.extract_dynamic_path(upload).named_captures.symbolize_keys + secret, identifier = upload.split('/').last(2) + + uploader_context = { + secret: secret, + identifier: identifier + } UploadService.new(@project, File.open(upload, 'r'), FileUploader, uploader_context).execute.to_h end diff --git a/spec/uploaders/file_uploader_spec.rb b/spec/uploaders/file_uploader_spec.rb index 185c62491ce..7f91caab402 100644 --- a/spec/uploaders/file_uploader_spec.rb +++ b/spec/uploaders/file_uploader_spec.rb @@ -141,15 +141,6 @@ def store_dir end end - describe '.extract_dynamic_path' do - it 'works with hashed storage' do - path = 'export/4b227777d4dd1fc61c6f884f48641d02b4d121d3fd328cb08b5531fcacdabf8a/test/uploads/72a497a02fe3ee09edae2ed06d390038/dummy.txt' - - expect(described_class.extract_dynamic_path(path)[:identifier]).to eq('dummy.txt') - expect(described_class.extract_dynamic_path(path)[:secret]).to eq('72a497a02fe3ee09edae2ed06d390038') - end - end - describe '#secret' do it 'generates a secret if none is provided' do expect(described_class).to receive(:generate_secret).and_return('secret') -- GitLab