aws-sdk-s3 1.84.1 → 1.117.2
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +930 -0
- data/LICENSE.txt +202 -0
- data/VERSION +1 -0
- data/lib/aws-sdk-s3/bucket.rb +154 -46
- data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
- data/lib/aws-sdk-s3/bucket_cors.rb +29 -9
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +30 -9
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +31 -9
- data/lib/aws-sdk-s3/bucket_logging.rb +25 -6
- data/lib/aws-sdk-s3/bucket_notification.rb +21 -9
- data/lib/aws-sdk-s3/bucket_policy.rb +27 -7
- data/lib/aws-sdk-s3/bucket_request_payment.rb +27 -8
- data/lib/aws-sdk-s3/bucket_tagging.rb +27 -7
- data/lib/aws-sdk-s3/bucket_versioning.rb +70 -10
- data/lib/aws-sdk-s3/bucket_website.rb +27 -7
- data/lib/aws-sdk-s3/client.rb +3747 -1848
- data/lib/aws-sdk-s3/client_api.rb +677 -227
- data/lib/aws-sdk-s3/customizations/bucket.rb +28 -49
- data/lib/aws-sdk-s3/customizations/object.rb +116 -18
- data/lib/aws-sdk-s3/encryption/client.rb +1 -1
- data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
- data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +3 -3
- data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
- data/lib/aws-sdk-s3/endpoint_parameters.rb +142 -0
- data/lib/aws-sdk-s3/endpoint_provider.rb +2020 -0
- data/lib/aws-sdk-s3/endpoints.rb +2149 -0
- data/lib/aws-sdk-s3/errors.rb +1 -1
- data/lib/aws-sdk-s3/event_streams.rb +1 -1
- data/lib/aws-sdk-s3/file_downloader.rb +7 -2
- data/lib/aws-sdk-s3/file_uploader.rb +8 -3
- data/lib/aws-sdk-s3/legacy_signer.rb +15 -25
- data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +36 -10
- data/lib/aws-sdk-s3/multipart_upload.rb +133 -19
- data/lib/aws-sdk-s3/multipart_upload_part.rb +141 -21
- data/lib/aws-sdk-s3/object.rb +430 -126
- data/lib/aws-sdk-s3/object_acl.rb +31 -9
- data/lib/aws-sdk-s3/object_summary.rb +265 -110
- data/lib/aws-sdk-s3/object_version.rb +80 -53
- data/lib/aws-sdk-s3/plugins/accelerate.rb +1 -39
- data/lib/aws-sdk-s3/plugins/arn.rb +25 -142
- data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
- data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
- data/lib/aws-sdk-s3/plugins/dualstack.rb +2 -49
- data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
- data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -1
- data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +1 -1
- data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +8 -31
- data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +33 -102
- data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
- data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
- data/lib/aws-sdk-s3/presigned_post.rb +47 -35
- data/lib/aws-sdk-s3/presigner.rb +39 -49
- data/lib/aws-sdk-s3/resource.rb +24 -4
- data/lib/aws-sdk-s3/types.rb +3785 -4735
- data/lib/aws-sdk-s3/waiters.rb +1 -1
- data/lib/aws-sdk-s3.rb +6 -2
- metadata +19 -14
- data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -62
- data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -71
data/lib/aws-sdk-s3/errors.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# WARNING ABOUT GENERATED CODE
|
4
4
|
#
|
5
5
|
# This file is generated. See the contributing guide for more information:
|
6
|
-
# https://github.com/aws/aws-sdk-ruby/blob/
|
6
|
+
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
|
7
7
|
#
|
8
8
|
# WARNING ABOUT GENERATED CODE
|
9
9
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# WARNING ABOUT GENERATED CODE
|
4
4
|
#
|
5
5
|
# This file is generated. See the contributing guide for more information:
|
6
|
-
# https://github.com/aws/aws-sdk-ruby/blob/
|
6
|
+
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
|
7
7
|
#
|
8
8
|
# WARNING ABOUT GENERATED CODE
|
9
9
|
|
@@ -94,7 +94,12 @@ module Aws
|
|
94
94
|
if @chunk_size && @chunk_size > file_size
|
95
95
|
raise ArgumentError, ":chunk_size shouldn't exceed total file size."
|
96
96
|
else
|
97
|
-
@chunk_size || [
|
97
|
+
chunk_size = @chunk_size || [
|
98
|
+
(file_size.to_f / MAX_PARTS).ceil,
|
99
|
+
MIN_CHUNK_SIZE
|
100
|
+
].max.to_i
|
101
|
+
chunk_size -= 1 if file_size % chunk_size == 1
|
102
|
+
chunk_size
|
98
103
|
end
|
99
104
|
end
|
100
105
|
|
@@ -129,7 +134,7 @@ module Aws
|
|
129
134
|
def write(resp)
|
130
135
|
range, _ = resp.content_range.split(' ').last.split('/')
|
131
136
|
head, _ = range.split('-').map {|s| s.to_i}
|
132
|
-
|
137
|
+
File.write(@path, resp.body.read, head)
|
133
138
|
end
|
134
139
|
|
135
140
|
def single_request
|
@@ -7,16 +7,16 @@ module Aws
|
|
7
7
|
# @api private
|
8
8
|
class FileUploader
|
9
9
|
|
10
|
-
|
10
|
+
ONE_HUNDRED_MEGABYTES = 100 * 1024 * 1024
|
11
11
|
|
12
12
|
# @param [Hash] options
|
13
13
|
# @option options [Client] :client
|
14
|
-
# @option options [Integer] :multipart_threshold (
|
14
|
+
# @option options [Integer] :multipart_threshold (104857600)
|
15
15
|
def initialize(options = {})
|
16
16
|
@options = options
|
17
17
|
@client = options[:client] || Client.new
|
18
18
|
@multipart_threshold = options[:multipart_threshold] ||
|
19
|
-
|
19
|
+
ONE_HUNDRED_MEGABYTES
|
20
20
|
end
|
21
21
|
|
22
22
|
# @return [Client]
|
@@ -32,11 +32,16 @@ module Aws
|
|
32
32
|
# @option options [Proc] :progress_callback
|
33
33
|
# A Proc that will be called when each chunk of the upload is sent.
|
34
34
|
# It will be invoked with [bytes_read], [total_sizes]
|
35
|
+
# @option options [Integer] :thread_count
|
36
|
+
# The thread count to use for multipart uploads. Ignored for
|
37
|
+
# objects smaller than the multipart threshold.
|
35
38
|
# @return [void]
|
36
39
|
def upload(source, options = {})
|
37
40
|
if File.size(source) >= multipart_threshold
|
38
41
|
MultipartFileUploader.new(@options).upload(source, options)
|
39
42
|
else
|
43
|
+
# remove multipart parameters not supported by put_object
|
44
|
+
options.delete(:thread_count)
|
40
45
|
put_object(source, options)
|
41
46
|
end
|
42
47
|
end
|
@@ -4,7 +4,6 @@ require 'set'
|
|
4
4
|
require 'time'
|
5
5
|
require 'openssl'
|
6
6
|
require 'cgi'
|
7
|
-
require 'webrick/httputils'
|
8
7
|
require 'aws-sdk-core/query'
|
9
8
|
|
10
9
|
module Aws
|
@@ -157,33 +156,24 @@ module Aws
|
|
157
156
|
end
|
158
157
|
|
159
158
|
def uri_escape(s)
|
160
|
-
|
161
159
|
#URI.escape(s)
|
162
160
|
|
163
|
-
#
|
164
|
-
#
|
165
|
-
#
|
166
|
-
#
|
167
|
-
#
|
168
|
-
#
|
169
|
-
#
|
170
|
-
# (
|
171
|
-
#
|
172
|
-
#
|
173
|
-
#
|
174
|
-
#
|
175
|
-
#
|
176
|
-
#
|
177
|
-
|
178
|
-
# URI.escape(s),
|
179
|
-
# ]
|
180
|
-
# next if e.uniq.length == 1
|
181
|
-
# puts("%5s %5s %5s %5s %5s %5s %5s" % ([s.inspect] + e))
|
182
|
-
# }
|
183
|
-
#
|
184
|
-
WEBrick::HTTPUtils.escape(s).gsub('%5B', '[').gsub('%5D', ']')
|
161
|
+
# (0..255).each {|c|
|
162
|
+
# s = [c].pack("C")
|
163
|
+
# e = [
|
164
|
+
# CGI.escape(s),
|
165
|
+
# ERB::Util.url_encode(s),
|
166
|
+
# URI.encode_www_form_component(s),
|
167
|
+
# WEBrick::HTTPUtils.escape_form(s),
|
168
|
+
# WEBrick::HTTPUtils.escape(s),
|
169
|
+
# URI.escape(s),
|
170
|
+
# URI::DEFAULT_PARSER.escape(s)
|
171
|
+
# ]
|
172
|
+
# next if e.uniq.length == 1
|
173
|
+
# puts("%5s %5s %5s %5s %5s %5s %5s %5s" % ([s.inspect] + e))
|
174
|
+
# }
|
175
|
+
URI::DEFAULT_PARSER.escape(s)
|
185
176
|
end
|
186
|
-
|
187
177
|
end
|
188
178
|
end
|
189
179
|
end
|
@@ -21,6 +21,10 @@ module Aws
|
|
21
21
|
Client.api.operation(:create_multipart_upload).input.shape.member_names
|
22
22
|
)
|
23
23
|
|
24
|
+
COMPLETE_OPTIONS = Set.new(
|
25
|
+
Client.api.operation(:complete_multipart_upload).input.shape.member_names
|
26
|
+
)
|
27
|
+
|
24
28
|
# @api private
|
25
29
|
UPLOAD_PART_OPTIONS = Set.new(
|
26
30
|
Client.api.operation(:upload_part).input.shape.member_names
|
@@ -42,7 +46,7 @@ module Aws
|
|
42
46
|
# @option options [Proc] :progress_callback
|
43
47
|
# A Proc that will be called when each chunk of the upload is sent.
|
44
48
|
# It will be invoked with [bytes_read], [total_sizes]
|
45
|
-
# @return [
|
49
|
+
# @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse
|
46
50
|
def upload(source, options = {})
|
47
51
|
if File.size(source) < MIN_PART_SIZE
|
48
52
|
raise ArgumentError, FILE_TOO_SMALL
|
@@ -61,10 +65,10 @@ module Aws
|
|
61
65
|
|
62
66
|
def complete_upload(upload_id, parts, options)
|
63
67
|
@client.complete_multipart_upload(
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
+
**complete_opts(options).merge(
|
69
|
+
upload_id: upload_id,
|
70
|
+
multipart_upload: { parts: parts }
|
71
|
+
)
|
68
72
|
)
|
69
73
|
end
|
70
74
|
|
@@ -123,6 +127,13 @@ module Aws
|
|
123
127
|
end
|
124
128
|
end
|
125
129
|
|
130
|
+
def complete_opts(options)
|
131
|
+
COMPLETE_OPTIONS.inject({}) do |hash, key|
|
132
|
+
hash[key] = options[key] if options.key?(key)
|
133
|
+
hash
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
126
137
|
def upload_part_opts(options)
|
127
138
|
UPLOAD_PART_OPTIONS.inject({}) do |hash, key|
|
128
139
|
hash[key] = options[key] if options.key?(key)
|
@@ -147,7 +158,15 @@ module Aws
|
|
147
158
|
end
|
148
159
|
resp = @client.upload_part(part)
|
149
160
|
part[:body].close
|
150
|
-
|
161
|
+
completed_part = {etag: resp.etag, part_number: part[:part_number]}
|
162
|
+
|
163
|
+
# get the requested checksum from the response
|
164
|
+
if part[:checksum_algorithm]
|
165
|
+
k = "checksum_#{part[:checksum_algorithm].downcase}".to_sym
|
166
|
+
completed_part[k] = resp[k]
|
167
|
+
end
|
168
|
+
|
169
|
+
completed.push(completed_part)
|
151
170
|
end
|
152
171
|
nil
|
153
172
|
rescue => error
|
@@ -224,4 +243,4 @@ module Aws
|
|
224
243
|
end
|
225
244
|
end
|
226
245
|
end
|
227
|
-
end
|
246
|
+
end
|
@@ -26,6 +26,10 @@ module Aws
|
|
26
26
|
UPLOAD_PART_OPTIONS =
|
27
27
|
Set.new(Client.api.operation(:upload_part).input.shape.member_names)
|
28
28
|
|
29
|
+
# @api private
|
30
|
+
COMPLETE_UPLOAD_OPTIONS =
|
31
|
+
Set.new(Client.api.operation(:complete_multipart_upload).input.shape.member_names)
|
32
|
+
|
29
33
|
# @option options [Client] :client
|
30
34
|
def initialize(options = {})
|
31
35
|
@client = options[:client] || Client.new
|
@@ -39,7 +43,7 @@ module Aws
|
|
39
43
|
|
40
44
|
# @option options [required,String] :bucket
|
41
45
|
# @option options [required,String] :key
|
42
|
-
# @return [
|
46
|
+
# @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse
|
43
47
|
def upload(options = {}, &block)
|
44
48
|
upload_id = initiate_upload(options)
|
45
49
|
parts = upload_parts(upload_id, options, &block)
|
@@ -54,17 +58,22 @@ module Aws
|
|
54
58
|
|
55
59
|
def complete_upload(upload_id, parts, options)
|
56
60
|
@client.complete_multipart_upload(
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
+
**complete_opts(options).merge(
|
62
|
+
upload_id: upload_id,
|
63
|
+
multipart_upload: { parts: parts }
|
64
|
+
)
|
65
|
+
)
|
61
66
|
end
|
62
67
|
|
63
68
|
def upload_parts(upload_id, options, &block)
|
64
69
|
completed = Queue.new
|
70
|
+
thread_errors = []
|
65
71
|
errors = begin
|
66
72
|
IO.pipe do |read_pipe, write_pipe|
|
67
|
-
threads = upload_in_threads(
|
73
|
+
threads = upload_in_threads(
|
74
|
+
read_pipe, completed,
|
75
|
+
upload_part_opts(options).merge(upload_id: upload_id),
|
76
|
+
thread_errors)
|
68
77
|
begin
|
69
78
|
block.call(write_pipe)
|
70
79
|
ensure
|
@@ -74,7 +83,7 @@ module Aws
|
|
74
83
|
threads.map(&:value).compact
|
75
84
|
end
|
76
85
|
rescue => e
|
77
|
-
[e]
|
86
|
+
thread_errors + [e]
|
78
87
|
end
|
79
88
|
|
80
89
|
if errors.empty?
|
@@ -113,6 +122,13 @@ module Aws
|
|
113
122
|
end
|
114
123
|
end
|
115
124
|
|
125
|
+
def complete_opts(options)
|
126
|
+
COMPLETE_UPLOAD_OPTIONS.inject({}) do |hash, key|
|
127
|
+
hash[key] = options[key] if options.key?(key)
|
128
|
+
hash
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
116
132
|
def read_to_part_body(read_pipe)
|
117
133
|
return if read_pipe.closed?
|
118
134
|
temp_io = @tempfile ? Tempfile.new(TEMPFILE_PREIX) : StringIO.new(String.new)
|
@@ -130,7 +146,7 @@ module Aws
|
|
130
146
|
end
|
131
147
|
end
|
132
148
|
|
133
|
-
def upload_in_threads(read_pipe, completed, options)
|
149
|
+
def upload_in_threads(read_pipe, completed, options, thread_errors)
|
134
150
|
mutex = Mutex.new
|
135
151
|
part_number = 0
|
136
152
|
@thread_count.times.map do
|
@@ -147,7 +163,14 @@ module Aws
|
|
147
163
|
part_number: thread_part_number,
|
148
164
|
)
|
149
165
|
resp = @client.upload_part(part)
|
150
|
-
|
166
|
+
completed_part = {etag: resp.etag, part_number: part[:part_number]}
|
167
|
+
|
168
|
+
# get the requested checksum from the response
|
169
|
+
if part[:checksum_algorithm]
|
170
|
+
k = "checksum_#{part[:checksum_algorithm].downcase}".to_sym
|
171
|
+
completed_part[k] = resp[k]
|
172
|
+
end
|
173
|
+
completed.push(completed_part)
|
151
174
|
ensure
|
152
175
|
if Tempfile === body
|
153
176
|
body.close
|
@@ -160,7 +183,10 @@ module Aws
|
|
160
183
|
nil
|
161
184
|
rescue => error
|
162
185
|
# keep other threads from uploading other parts
|
163
|
-
mutex.synchronize
|
186
|
+
mutex.synchronize do
|
187
|
+
thread_errors.push(error)
|
188
|
+
read_pipe.close_read unless read_pipe.closed?
|
189
|
+
end
|
164
190
|
error
|
165
191
|
end
|
166
192
|
end
|
@@ -3,7 +3,7 @@
|
|
3
3
|
# WARNING ABOUT GENERATED CODE
|
4
4
|
#
|
5
5
|
# This file is generated. See the contributing guide for more information:
|
6
|
-
# https://github.com/aws/aws-sdk-ruby/blob/
|
6
|
+
# https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
|
7
7
|
#
|
8
8
|
# WARNING ABOUT GENERATED CODE
|
9
9
|
|
@@ -87,6 +87,12 @@ module Aws::S3
|
|
87
87
|
data[:initiator]
|
88
88
|
end
|
89
89
|
|
90
|
+
# The algorithm that was used to create a checksum of the object.
|
91
|
+
# @return [String]
|
92
|
+
def checksum_algorithm
|
93
|
+
data[:checksum_algorithm]
|
94
|
+
end
|
95
|
+
|
90
96
|
# @!endgroup
|
91
97
|
|
92
98
|
# @return [Client]
|
@@ -226,17 +232,17 @@ module Aws::S3
|
|
226
232
|
# @option options [String] :request_payer
|
227
233
|
# Confirms that the requester knows that they will be charged for the
|
228
234
|
# request. Bucket owners need not specify this parameter in their
|
229
|
-
# requests. For information about downloading objects from
|
230
|
-
#
|
231
|
-
# in the *Amazon S3
|
235
|
+
# requests. For information about downloading objects from Requester
|
236
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
237
|
+
# in the *Amazon S3 User Guide*.
|
232
238
|
#
|
233
239
|
#
|
234
240
|
#
|
235
241
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
236
242
|
# @option options [String] :expected_bucket_owner
|
237
|
-
# The account
|
238
|
-
# a different account, the request
|
239
|
-
#
|
243
|
+
# The account ID of the expected bucket owner. If the bucket is owned by
|
244
|
+
# a different account, the request fails with the HTTP status code `403
|
245
|
+
# Forbidden` (access denied).
|
240
246
|
# @return [Types::AbortMultipartUploadOutput]
|
241
247
|
def abort(options = {})
|
242
248
|
options = options.merge(
|
@@ -255,30 +261,108 @@ module Aws::S3
|
|
255
261
|
# parts: [
|
256
262
|
# {
|
257
263
|
# etag: "ETag",
|
264
|
+
# checksum_crc32: "ChecksumCRC32",
|
265
|
+
# checksum_crc32c: "ChecksumCRC32C",
|
266
|
+
# checksum_sha1: "ChecksumSHA1",
|
267
|
+
# checksum_sha256: "ChecksumSHA256",
|
258
268
|
# part_number: 1,
|
259
269
|
# },
|
260
270
|
# ],
|
261
271
|
# },
|
272
|
+
# checksum_crc32: "ChecksumCRC32",
|
273
|
+
# checksum_crc32c: "ChecksumCRC32C",
|
274
|
+
# checksum_sha1: "ChecksumSHA1",
|
275
|
+
# checksum_sha256: "ChecksumSHA256",
|
262
276
|
# request_payer: "requester", # accepts requester
|
263
277
|
# expected_bucket_owner: "AccountId",
|
278
|
+
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
279
|
+
# sse_customer_key: "SSECustomerKey",
|
280
|
+
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
264
281
|
# })
|
265
282
|
# @param [Hash] options ({})
|
266
283
|
# @option options [Types::CompletedMultipartUpload] :multipart_upload
|
267
284
|
# The container for the multipart upload request information.
|
285
|
+
# @option options [String] :checksum_crc32
|
286
|
+
# This header can be used as a data integrity check to verify that the
|
287
|
+
# data received is the same data that was originally sent. This header
|
288
|
+
# specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
|
289
|
+
# more information, see [Checking object integrity][1] in the *Amazon S3
|
290
|
+
# User Guide*.
|
291
|
+
#
|
292
|
+
#
|
293
|
+
#
|
294
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
295
|
+
# @option options [String] :checksum_crc32c
|
296
|
+
# This header can be used as a data integrity check to verify that the
|
297
|
+
# data received is the same data that was originally sent. This header
|
298
|
+
# specifies the base64-encoded, 32-bit CRC32C checksum of the object.
|
299
|
+
# For more information, see [Checking object integrity][1] in the
|
300
|
+
# *Amazon S3 User Guide*.
|
301
|
+
#
|
302
|
+
#
|
303
|
+
#
|
304
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
305
|
+
# @option options [String] :checksum_sha1
|
306
|
+
# This header can be used as a data integrity check to verify that the
|
307
|
+
# data received is the same data that was originally sent. This header
|
308
|
+
# specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
|
309
|
+
# more information, see [Checking object integrity][1] in the *Amazon S3
|
310
|
+
# User Guide*.
|
311
|
+
#
|
312
|
+
#
|
313
|
+
#
|
314
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
315
|
+
# @option options [String] :checksum_sha256
|
316
|
+
# This header can be used as a data integrity check to verify that the
|
317
|
+
# data received is the same data that was originally sent. This header
|
318
|
+
# specifies the base64-encoded, 256-bit SHA-256 digest of the object.
|
319
|
+
# For more information, see [Checking object integrity][1] in the
|
320
|
+
# *Amazon S3 User Guide*.
|
321
|
+
#
|
322
|
+
#
|
323
|
+
#
|
324
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
268
325
|
# @option options [String] :request_payer
|
269
326
|
# Confirms that the requester knows that they will be charged for the
|
270
327
|
# request. Bucket owners need not specify this parameter in their
|
271
|
-
# requests. For information about downloading objects from
|
272
|
-
#
|
273
|
-
# in the *Amazon S3
|
328
|
+
# requests. For information about downloading objects from Requester
|
329
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
330
|
+
# in the *Amazon S3 User Guide*.
|
274
331
|
#
|
275
332
|
#
|
276
333
|
#
|
277
334
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
278
335
|
# @option options [String] :expected_bucket_owner
|
279
|
-
# The account
|
280
|
-
# a different account, the request
|
281
|
-
#
|
336
|
+
# The account ID of the expected bucket owner. If the bucket is owned by
|
337
|
+
# a different account, the request fails with the HTTP status code `403
|
338
|
+
# Forbidden` (access denied).
|
339
|
+
# @option options [String] :sse_customer_algorithm
|
340
|
+
# The server-side encryption (SSE) algorithm used to encrypt the object.
|
341
|
+
# This parameter is needed only when the object was created using a
|
342
|
+
# checksum algorithm. For more information, see [Protecting data using
|
343
|
+
# SSE-C keys][1] in the *Amazon S3 User Guide*.
|
344
|
+
#
|
345
|
+
#
|
346
|
+
#
|
347
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
348
|
+
# @option options [String] :sse_customer_key
|
349
|
+
# The server-side encryption (SSE) customer managed key. This parameter
|
350
|
+
# is needed only when the object was created using a checksum algorithm.
|
351
|
+
# For more information, see [Protecting data using SSE-C keys][1] in the
|
352
|
+
# *Amazon S3 User Guide*.
|
353
|
+
#
|
354
|
+
#
|
355
|
+
#
|
356
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
357
|
+
# @option options [String] :sse_customer_key_md5
|
358
|
+
# The MD5 server-side encryption (SSE) customer managed key. This
|
359
|
+
# parameter is needed only when the object was created using a checksum
|
360
|
+
# algorithm. For more information, see [Protecting data using SSE-C
|
361
|
+
# keys][1] in the *Amazon S3 User Guide*.
|
362
|
+
#
|
363
|
+
#
|
364
|
+
#
|
365
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
282
366
|
# @return [Object]
|
283
367
|
def complete(options = {})
|
284
368
|
options = options.merge(
|
@@ -322,22 +406,52 @@ module Aws::S3
|
|
322
406
|
# parts = multipart_upload.parts({
|
323
407
|
# request_payer: "requester", # accepts requester
|
324
408
|
# expected_bucket_owner: "AccountId",
|
409
|
+
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
410
|
+
# sse_customer_key: "SSECustomerKey",
|
411
|
+
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
325
412
|
# })
|
326
413
|
# @param [Hash] options ({})
|
327
414
|
# @option options [String] :request_payer
|
328
415
|
# Confirms that the requester knows that they will be charged for the
|
329
416
|
# request. Bucket owners need not specify this parameter in their
|
330
|
-
# requests. For information about downloading objects from
|
331
|
-
#
|
332
|
-
# in the *Amazon S3
|
417
|
+
# requests. For information about downloading objects from Requester
|
418
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
419
|
+
# in the *Amazon S3 User Guide*.
|
333
420
|
#
|
334
421
|
#
|
335
422
|
#
|
336
423
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
337
424
|
# @option options [String] :expected_bucket_owner
|
338
|
-
# The account
|
339
|
-
# a different account, the request
|
340
|
-
#
|
425
|
+
# The account ID of the expected bucket owner. If the bucket is owned by
|
426
|
+
# a different account, the request fails with the HTTP status code `403
|
427
|
+
# Forbidden` (access denied).
|
428
|
+
# @option options [String] :sse_customer_algorithm
|
429
|
+
# The server-side encryption (SSE) algorithm used to encrypt the object.
|
430
|
+
# This parameter is needed only when the object was created using a
|
431
|
+
# checksum algorithm. For more information, see [Protecting data using
|
432
|
+
# SSE-C keys][1] in the *Amazon S3 User Guide*.
|
433
|
+
#
|
434
|
+
#
|
435
|
+
#
|
436
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
437
|
+
# @option options [String] :sse_customer_key
|
438
|
+
# The server-side encryption (SSE) customer managed key. This parameter
|
439
|
+
# is needed only when the object was created using a checksum algorithm.
|
440
|
+
# For more information, see [Protecting data using SSE-C keys][1] in the
|
441
|
+
# *Amazon S3 User Guide*.
|
442
|
+
#
|
443
|
+
#
|
444
|
+
#
|
445
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
446
|
+
# @option options [String] :sse_customer_key_md5
|
447
|
+
# The MD5 server-side encryption (SSE) customer managed key. This
|
448
|
+
# parameter is needed only when the object was created using a checksum
|
449
|
+
# algorithm. For more information, see [Protecting data using SSE-C
|
450
|
+
# keys][1] in the *Amazon S3 User Guide*.
|
451
|
+
#
|
452
|
+
#
|
453
|
+
#
|
454
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
341
455
|
# @return [MultipartUploadPart::Collection]
|
342
456
|
def parts(options = {})
|
343
457
|
batches = Enumerator.new do |y|
|