Commit ff345f8b authored by Robert Speicher's avatar Robert Speicher

Merge branch 'create-backup-dir-for-local' into 'master'

Only create the backup directory if it is local

Closes #12710

See merge request !4551
parents b4e84809 f03df228
...@@ -38,7 +38,6 @@ module Backup ...@@ -38,7 +38,6 @@ module Backup
end end
def upload(tar_file) def upload(tar_file)
remote_directory = Gitlab.config.backup.upload.remote_directory
$progress.print "Uploading backup archive to remote storage #{remote_directory} ... " $progress.print "Uploading backup archive to remote storage #{remote_directory} ... "
connection_settings = Gitlab.config.backup.upload.connection connection_settings = Gitlab.config.backup.upload.connection
...@@ -47,8 +46,7 @@ module Backup ...@@ -47,8 +46,7 @@ module Backup
return return
end end
connection = ::Fog::Storage.new(connection_settings) directory = connect_to_remote_directory(connection_settings)
directory = connection.directories.create(key: remote_directory)
if directory.files.create(key: tar_file, body: File.open(tar_file), public: false, if directory.files.create(key: tar_file, body: File.open(tar_file), public: false,
multipart_chunk_size: Gitlab.config.backup.upload.multipart_chunk_size, multipart_chunk_size: Gitlab.config.backup.upload.multipart_chunk_size,
...@@ -155,6 +153,23 @@ module Backup ...@@ -155,6 +153,23 @@ module Backup
private private
def connect_to_remote_directory(connection_settings)
connection = ::Fog::Storage.new(connection_settings)
# We only attempt to create the directory for local backups. For AWS
# and other cloud providers, we cannot guarantee the user will have
# permission to create the bucket.
if connection.service == ::Fog::Storage::Local
connection.directories.create(key: remote_directory)
else
connection.directories.get(remote_directory)
end
end
def remote_directory
Gitlab.config.backup.upload.remote_directory
end
def backup_contents def backup_contents
folders_to_backup + archives_to_backup + ["backup_information.yml"] folders_to_backup + archives_to_backup + ["backup_information.yml"]
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