aws-sdk-s3 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2345872e7163a15b156496caadd3521fb3625ce4
4
- data.tar.gz: f44c14590d4fed6fb154cd530e8df4adf7869731
3
+ metadata.gz: '02598771db66274dbc2c0cc54bb89d83d94fc7e9'
4
+ data.tar.gz: e3fffc5442a66ab75032d4d734ce9e5dd26e80c1
5
5
  SHA512:
6
- metadata.gz: 0f9d8722c25b2e814dd6fe58c73f1af1c0eb08361797a6e39e25ffa2fda7f2f0e4fb2e2ea62a9c9b6bb299914488bfa99111ddf5243e8900716c10084cb1901d
7
- data.tar.gz: da12904e8321a0380ca9472d9cab0bd1568b81dff01b85129edc08819cebd9bc89b31f8a57a251a905e8c529f1ba1df61d0484ed8cd14f5aff8c6719b96fd4f2
6
+ metadata.gz: 444989423926cf1bfc9a4f0674c32a1412c1c9a3ed26eeb976fb7207a08df75df623ab57275c5d89c7b2cb1b3bb4a972387c6a2d8fd319edc447f78adf6d0fcb
7
+ data.tar.gz: d61c112b6a5d654b0c97c6c42edff9d98cffcecc5f67efaa44dfd0921fcbd8aed25162b890cfa6908484613ea92c163abece52e14dba048e09d386f21f972bcf
@@ -63,6 +63,6 @@ require_relative 'aws-sdk-s3/event_streams'
63
63
  # @service
64
64
  module Aws::S3
65
65
 
66
- GEM_VERSION = '1.15.0'
66
+ GEM_VERSION = '1.16.0'
67
67
 
68
68
  end
@@ -6384,7 +6384,7 @@ module Aws::S3
6384
6384
  params: params,
6385
6385
  config: config)
6386
6386
  context[:gem_name] = 'aws-sdk-s3'
6387
- context[:gem_version] = '1.15.0'
6387
+ context[:gem_version] = '1.16.0'
6388
6388
  Seahorse::Client::Request.new(handlers, context)
6389
6389
  end
6390
6390
 
@@ -333,6 +333,10 @@ module Aws
333
333
  # @option options [String] thread_count Customize threads used in multipart
334
334
  # download, if not provided, 10 is default value
335
335
  #
336
+ # @option options [String] version_id The object version id used to retrieve
337
+ # the object, to know more about object versioning, see:
338
+ # https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectVersioning.html
339
+ #
336
340
  # @return [Boolean] Returns `true` when the file is downloaded
337
341
  # without any errors.
338
342
  def download_file(destination, options = {})
@@ -24,15 +24,18 @@ module Aws
24
24
  @mode = options[:mode] || "auto"
25
25
  @thread_count = options[:thread_count] || THREAD_COUNT
26
26
  @chunk_size = options[:chunk_size]
27
- @bucket = options[:bucket]
28
- @key = options[:key]
27
+ @params = {
28
+ bucket: options[:bucket],
29
+ key: options[:key],
30
+ }
31
+ @params[:version_id] = options[:version_id] if options[:version_id]
29
32
 
30
33
  case @mode
31
34
  when "auto" then multipart_download
32
35
  when "single_request" then single_request
33
36
  when "get_range"
34
37
  if @chunk_size
35
- resp = @client.head_object(bucket: @bucket, key: @key)
38
+ resp = @client.head_object(@params)
36
39
  multithreaded_get_by_ranges(construct_chunks(resp.content_length))
37
40
  else
38
41
  msg = "In :get_range mode, :chunk_size must be provided"
@@ -48,7 +51,7 @@ module Aws
48
51
  private
49
52
 
50
53
  def multipart_download
51
- resp = @client.head_object(bucket: @bucket, key: @key, part_number: 1)
54
+ resp = @client.head_object(@params.merge(part_number: 1))
52
55
  count = resp.parts_count
53
56
  if count.nil? || count <= 1
54
57
  resp.content_length < MIN_CHUNK_SIZE ?
@@ -56,7 +59,7 @@ module Aws
56
59
  multithreaded_get_by_ranges(construct_chunks(resp.content_length))
57
60
  else
58
61
  # partNumber is an option
59
- resp = @client.head_object(bucket: @bucket, key: @key)
62
+ resp = @client.head_object(@params)
60
63
  resp.content_length < MIN_CHUNK_SIZE ?
61
64
  single_request :
62
65
  compute_mode(resp.content_length, count)
@@ -112,9 +115,7 @@ module Aws
112
115
  batch.each do |chunk|
113
116
  threads << Thread.new do
114
117
  resp = @client.get_object(
115
- :bucket => @bucket,
116
- :key => @key,
117
- param.to_sym => chunk
118
+ @params.merge(param.to_sym => chunk)
118
119
  )
119
120
  write(resp)
120
121
  end
@@ -131,7 +132,7 @@ module Aws
131
132
 
132
133
  def single_request
133
134
  @client.get_object(
134
- bucket: @bucket, key: @key, response_target: @path
135
+ @params.merge(response_target: @path)
135
136
  )
136
137
  end
137
138
  end
@@ -56,14 +56,12 @@ module Aws
56
56
  end
57
57
 
58
58
  def read_from_file(bytes, output_buffer)
59
- if bytes
60
- data = @file.read([remaining_bytes, bytes].min)
61
- data = nil if data == ''
62
- else
63
- data = @file.read(remaining_bytes)
64
- end
59
+ length = [remaining_bytes, *bytes].min
60
+ data = @file.read(length, output_buffer)
61
+
65
62
  @position += data ? data.bytesize : 0
66
- output_buffer ? output_buffer.replace(data || '') : data
63
+
64
+ data.to_s unless bytes && (data.nil? || data.empty?)
67
65
  end
68
66
 
69
67
  def remaining_bytes
@@ -45,9 +45,7 @@ module Aws
45
45
 
46
46
  def open_file(source)
47
47
  if String === source || Pathname === source
48
- file = File.open(source, 'rb')
49
- yield(file)
50
- file.close
48
+ File.open(source, 'rb') { |file| yield(file) }
51
49
  else
52
50
  yield(source)
53
51
  end
@@ -45,7 +45,7 @@ module Aws
45
45
  end
46
46
 
47
47
  def update_in_chunks(digest, io)
48
- while chunk = io.read(CHUNK_SIZE)
48
+ while chunk = io.read(CHUNK_SIZE, buffer ||= "")
49
49
  digest.update(chunk)
50
50
  end
51
51
  io.rewind
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-26 00:00:00.000000000 Z
11
+ date: 2018-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-kms