aws3upload 1.0.6 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/aws3upload +11 -3
  3. metadata +2 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2115dcb7f01faf26723135dc2037274c991245db
4
- data.tar.gz: 9c82638235f3f89a360c532d1e87c4554bd8e646
3
+ metadata.gz: e93f1038d1312b4c4d09012284ecb79d077fde26
4
+ data.tar.gz: e8ed7a13fcfd39820373d76601a1e83c4754e3bf
5
5
  SHA512:
6
- metadata.gz: 8a54982d19bceb7c516a723d6fe013f34b0bd3ed3051a2f4a529682dc7e2533725a23388992b753118de8f75d21742a7008b71b22e23414b791e0590535978af
7
- data.tar.gz: fa782384b0eb2f44fcebf9fce65c64fb64cd1e2d74bb7b58d33c06ca304f20672a1bbac17f8c81779de8fefe33e13d24c267b021ff903f195fc5bb03fc489d86
6
+ metadata.gz: 150e898dc7a6f194939fd481bb52465cef0101d5e41248efb2fd789d6215d23f03d1a9992e4370b106936d07d504397969fb6616ea3f814d92daef06b6310284
7
+ data.tar.gz: 1331db3c6fc8c5acabc78c2b92d6b2e683e3fe9d537b3fee3a9c9adecedd5ed3d3ff10d12b66c74b7bcf4a25aa8db50433c803ab02d18d1a44261e809da4b4da
@@ -7,18 +7,22 @@ OptionParser.new do |opts|
7
7
  opts.banner = <<~HEREDOC
8
8
  Usage: aws3upload [OPTIONS] SOURCE DEST
9
9
  Require environments: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_S3_BUCKET
10
- Optional environments: S3_SRC, S3_DEST
10
+ Optional environments: S3_SRC, S3_DEST, S3_STORAGE_CLASS
11
11
  HEREDOC
12
12
  opts.on('-t', '--tags KEY=VALUE,...', Array, 'Add s3 tags for object') do |tags|
13
13
  options[:tags] = tags.map { |i|
14
14
  i.split('=')
15
15
  }.to_h.map { |k,v| {key: k, value: v} }
16
16
  end
17
+ opts.on('-s', '--storage STANDARD_IA', String, 'Change s3 storage class (STANDARD|REDUCED_REDUNDANCY|STANDARD_IA)') do |storage|
18
+ options[:storage] = storage
19
+ end
17
20
  end.parse!
18
21
 
19
22
  bucket = ENV['AWS_S3_BUCKET']
20
23
  source = ARGV.shift || ENV['S3_SRC']
21
24
  target = ARGV.shift || ENV['S3_DEST']
25
+ storage = options[:storage] || 'STANDARD_IA'
22
26
 
23
27
  ['AWS_ACCESS_KEY_ID', 'AWS_SECRET_ACCESS_KEY', 'AWS_REGION', 'AWS_S3_BUCKET'].each do |env|
24
28
  raise "Missing #{env} environment variable" unless ENV[env]
@@ -29,8 +33,12 @@ raise "Missing SOURCE argument" unless source
29
33
  puts "Copy #{source} to #{bucket}:::#{target}"
30
34
 
31
35
  s3 = Aws::S3::Client.new
32
- File.open(source,'rb') do |file|
33
- s3.put_object(bucket: bucket, key: target, body: file)
36
+ begin
37
+ File.open(source,'rb') do |file|
38
+ s3.put_object(bucket: bucket, key: target, body: file, storage_class: storage)
39
+ end
40
+ rescue Aws::S3::Errors::InvalidStorageClass
41
+ abort "Invalid s3 storage class #{storage}"
34
42
  end
35
43
 
36
44
  if options[:tags]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws3upload
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Shmelev
@@ -57,3 +57,4 @@ signing_key:
57
57
  specification_version: 4
58
58
  summary: AWS S3 Upload
59
59
  test_files: []
60
+ has_rdoc: