summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Nijhof <jeroen@jeroennijhof.nl>2015-06-09 17:35:31 +0200
committerJeroen Nijhof <jeroen@jeroennijhof.nl>2015-06-09 17:35:31 +0200
commit151dd7ccad23e9866dca7045405f422bdd2e77a5 (patch)
tree7144b6361191934023a835717850741c8506f03b
parent72371097641202e6e11acc0fe61535fe7bbb2732 (diff)
downloadgitlab-ci-151dd7ccad23e9866dca7045405f422bdd2e77a5.tar.gz
make multipart_chunk_size configurable
-rw-r--r--config/application.yml.example3
-rw-r--r--config/initializers/1_settings.rb1
-rw-r--r--lib/backup/manager.rb3
3 files changed, 6 insertions, 1 deletions
diff --git a/config/application.yml.example b/config/application.yml.example
index 8f64c33..760cab4 100644
--- a/config/application.yml.example
+++ b/config/application.yml.example
@@ -44,6 +44,9 @@ defaults: &defaults
# aws_secret_access_key: 'secret123'
# # The remote 'directory' to store your backups. For S3, this would be the bucket name.
# remote_directory: 'my.s3.bucket'
+ # # Use multipart uploads when file size reaches 100MB, see
+ # # http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
+ # multipart_chunk_size: 104857600
development:
diff --git a/config/initializers/1_settings.rb b/config/initializers/1_settings.rb
index 6021b46..dbe4fa1 100644
--- a/config/initializers/1_settings.rb
+++ b/config/initializers/1_settings.rb
@@ -63,3 +63,4 @@ Settings.backup['upload'] ||= Settingslogic.new({ 'remote_directory' => nil, 'co
if Settings.backup['upload']['connection']
Settings.backup['upload']['connection'] = Hash[Settings.backup['upload']['connection'].map { |k, v| [k.to_sym, v] }]
end
+Settings.backup['upload']['multipart_chunk_size'] ||= 104857600
diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb
index d657bba..fc847e2 100644
--- a/lib/backup/manager.rb
+++ b/lib/backup/manager.rb
@@ -45,7 +45,8 @@ module Backup
connection = ::Fog::Storage.new(connection_settings)
directory = connection.directories.get(remote_directory)
- if directory.files.create(key: tar_file, body: File.open(tar_file), public: false, multipart_chunk_size: 104857600)
+ if directory.files.create(key: tar_file, body: File.open(tar_file), public: false,
+ multipart_chunk_size: GitlabCi.config.backup.upload.multipart_chunk_size)
$progress.puts "done".green
else
puts "uploading backup to #{remote_directory} failed".red