aws-sdk-s3 1.136.0 → 1.176.1
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 +250 -1
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
- data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
- data/lib/aws-sdk-s3/bucket.rb +671 -139
- data/lib/aws-sdk-s3/bucket_acl.rb +12 -12
- data/lib/aws-sdk-s3/bucket_cors.rb +16 -16
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +21 -16
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +74 -17
- data/lib/aws-sdk-s3/bucket_logging.rb +19 -12
- data/lib/aws-sdk-s3/bucket_notification.rb +6 -6
- data/lib/aws-sdk-s3/bucket_policy.rb +62 -18
- data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
- data/lib/aws-sdk-s3/bucket_request_payment.rb +12 -12
- data/lib/aws-sdk-s3/bucket_tagging.rb +16 -16
- data/lib/aws-sdk-s3/bucket_versioning.rb +32 -32
- data/lib/aws-sdk-s3/bucket_website.rb +16 -16
- data/lib/aws-sdk-s3/client.rb +7597 -2823
- data/lib/aws-sdk-s3/client_api.rb +288 -22
- data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
- data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
- data/lib/aws-sdk-s3/customizations/object.rb +11 -5
- data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
- data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
- data/lib/aws-sdk-s3/customizations.rb +25 -31
- data/lib/aws-sdk-s3/encryption/client.rb +2 -2
- data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
- data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
- data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
- data/lib/aws-sdk-s3/endpoint_parameters.rb +53 -18
- data/lib/aws-sdk-s3/endpoint_provider.rb +125 -6
- data/lib/aws-sdk-s3/endpoints.rb +545 -1261
- data/lib/aws-sdk-s3/errors.rb +47 -0
- data/lib/aws-sdk-s3/express_credentials.rb +55 -0
- data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
- data/lib/aws-sdk-s3/file_downloader.rb +1 -2
- data/lib/aws-sdk-s3/file_uploader.rb +1 -1
- data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -4
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +6 -5
- data/lib/aws-sdk-s3/multipart_upload.rb +139 -36
- data/lib/aws-sdk-s3/multipart_upload_part.rb +175 -54
- data/lib/aws-sdk-s3/object.rb +1923 -313
- data/lib/aws-sdk-s3/object_acl.rb +34 -22
- data/lib/aws-sdk-s3/object_copier.rb +1 -1
- data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
- data/lib/aws-sdk-s3/object_summary.rb +1690 -250
- data/lib/aws-sdk-s3/object_version.rb +397 -67
- data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
- data/lib/aws-sdk-s3/plugins/endpoints.rb +32 -208
- data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
- data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
- data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
- data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
- data/lib/aws-sdk-s3/presigner.rb +5 -2
- data/lib/aws-sdk-s3/resource.rb +121 -22
- data/lib/aws-sdk-s3/types.rb +5960 -1526
- data/lib/aws-sdk-s3.rb +35 -31
- data/sig/bucket.rbs +221 -0
- data/sig/bucket_acl.rbs +78 -0
- data/sig/bucket_cors.rbs +69 -0
- data/sig/bucket_lifecycle.rbs +88 -0
- data/sig/bucket_lifecycle_configuration.rbs +115 -0
- data/sig/bucket_logging.rbs +76 -0
- data/sig/bucket_notification.rbs +114 -0
- data/sig/bucket_policy.rbs +59 -0
- data/sig/bucket_request_payment.rbs +54 -0
- data/sig/bucket_tagging.rbs +65 -0
- data/sig/bucket_versioning.rbs +77 -0
- data/sig/bucket_website.rbs +93 -0
- data/sig/client.rbs +2450 -0
- data/sig/customizations/bucket.rbs +19 -0
- data/sig/customizations/object.rbs +38 -0
- data/sig/customizations/object_summary.rbs +35 -0
- data/sig/errors.rbs +42 -0
- data/sig/multipart_upload.rbs +113 -0
- data/sig/multipart_upload_part.rbs +105 -0
- data/sig/object.rbs +448 -0
- data/sig/object_acl.rbs +86 -0
- data/sig/object_summary.rbs +340 -0
- data/sig/object_version.rbs +140 -0
- data/sig/resource.rbs +132 -0
- data/sig/types.rbs +2682 -0
- data/sig/waiters.rbs +95 -0
- metadata +44 -11
data/lib/aws-sdk-s3/errors.rb
CHANGED
@@ -29,12 +29,16 @@ module Aws::S3
|
|
29
29
|
# ## Error Classes
|
30
30
|
# * {BucketAlreadyExists}
|
31
31
|
# * {BucketAlreadyOwnedByYou}
|
32
|
+
# * {EncryptionTypeMismatch}
|
32
33
|
# * {InvalidObjectState}
|
34
|
+
# * {InvalidRequest}
|
35
|
+
# * {InvalidWriteOffset}
|
33
36
|
# * {NoSuchBucket}
|
34
37
|
# * {NoSuchKey}
|
35
38
|
# * {NoSuchUpload}
|
36
39
|
# * {ObjectAlreadyInActiveTierError}
|
37
40
|
# * {ObjectNotInActiveTierError}
|
41
|
+
# * {TooManyParts}
|
38
42
|
#
|
39
43
|
# Additionally, error classes are dynamically generated for service errors based on the error code
|
40
44
|
# if they are not defined above.
|
@@ -62,6 +66,16 @@ module Aws::S3
|
|
62
66
|
end
|
63
67
|
end
|
64
68
|
|
69
|
+
class EncryptionTypeMismatch < ServiceError
|
70
|
+
|
71
|
+
# @param [Seahorse::Client::RequestContext] context
|
72
|
+
# @param [String] message
|
73
|
+
# @param [Aws::S3::Types::EncryptionTypeMismatch] data
|
74
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
75
|
+
super(context, message, data)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
65
79
|
class InvalidObjectState < ServiceError
|
66
80
|
|
67
81
|
# @param [Seahorse::Client::RequestContext] context
|
@@ -82,6 +96,26 @@ module Aws::S3
|
|
82
96
|
end
|
83
97
|
end
|
84
98
|
|
99
|
+
class InvalidRequest < ServiceError
|
100
|
+
|
101
|
+
# @param [Seahorse::Client::RequestContext] context
|
102
|
+
# @param [String] message
|
103
|
+
# @param [Aws::S3::Types::InvalidRequest] data
|
104
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
105
|
+
super(context, message, data)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class InvalidWriteOffset < ServiceError
|
110
|
+
|
111
|
+
# @param [Seahorse::Client::RequestContext] context
|
112
|
+
# @param [String] message
|
113
|
+
# @param [Aws::S3::Types::InvalidWriteOffset] data
|
114
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
115
|
+
super(context, message, data)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
85
119
|
class NoSuchBucket < ServiceError
|
86
120
|
|
87
121
|
# @param [Seahorse::Client::RequestContext] context
|
@@ -132,5 +166,18 @@ module Aws::S3
|
|
132
166
|
end
|
133
167
|
end
|
134
168
|
|
169
|
+
class TooManyParts < ServiceError
|
170
|
+
|
171
|
+
# @param [Seahorse::Client::RequestContext] context
|
172
|
+
# @param [String] message
|
173
|
+
# @param [Aws::S3::Types::TooManyParts] data
|
174
|
+
def initialize(context, message, data = Aws::EmptyStructure.new)
|
175
|
+
super(context, message, data)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
135
179
|
end
|
136
180
|
end
|
181
|
+
|
182
|
+
# Load customizations if they exist
|
183
|
+
require 'aws-sdk-s3/customizations/errors'
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'set'
|
4
|
+
|
5
|
+
module Aws
|
6
|
+
module S3
|
7
|
+
# @api private
|
8
|
+
class ExpressCredentials
|
9
|
+
include CredentialProvider
|
10
|
+
include RefreshingCredentials
|
11
|
+
|
12
|
+
SYNC_EXPIRATION_LENGTH = 60 # 1 minute
|
13
|
+
ASYNC_EXPIRATION_LENGTH = 120 # 2 minutes
|
14
|
+
|
15
|
+
def initialize(options = {})
|
16
|
+
@client = options[:client]
|
17
|
+
@create_session_params = {}
|
18
|
+
options.each_pair do |key, value|
|
19
|
+
if self.class.create_session_options.include?(key)
|
20
|
+
@create_session_params[key] = value
|
21
|
+
end
|
22
|
+
end
|
23
|
+
@async_refresh = true
|
24
|
+
super
|
25
|
+
end
|
26
|
+
|
27
|
+
# @return [S3::Client]
|
28
|
+
attr_reader :client
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def refresh
|
33
|
+
c = @client.create_session(@create_session_params).credentials
|
34
|
+
@credentials = Credentials.new(
|
35
|
+
c.access_key_id,
|
36
|
+
c.secret_access_key,
|
37
|
+
c.session_token
|
38
|
+
)
|
39
|
+
@expiration = c.expiration
|
40
|
+
end
|
41
|
+
|
42
|
+
class << self
|
43
|
+
|
44
|
+
# @api private
|
45
|
+
def create_session_options
|
46
|
+
@cso ||= begin
|
47
|
+
input = S3::Client.api.operation(:create_session).input
|
48
|
+
Set.new(input.shape.member_names)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Aws
|
4
|
+
module S3
|
5
|
+
# @api private
|
6
|
+
def self.express_credentials_cache
|
7
|
+
@express_credentials_cache ||= LRUCache.new(max_entries: 100)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Returns Credentials class for S3 Express. Accepts CreateSession
|
11
|
+
# params as options. See {Client#create_session} for details.
|
12
|
+
class ExpressCredentialsProvider
|
13
|
+
# @param [Hash] options
|
14
|
+
# @option options [Client] :client The S3 client used to create the
|
15
|
+
# session.
|
16
|
+
# @option options [String] :session_mode (see: {Client#create_session})
|
17
|
+
# @option options [Boolean] :caching (true) When true, credentials will
|
18
|
+
# be cached.
|
19
|
+
# @option options [Callable] :before_refresh Proc called before
|
20
|
+
# credentials are refreshed.
|
21
|
+
def initialize(options = {})
|
22
|
+
@client = options.delete(:client)
|
23
|
+
@caching = options.delete(:caching) != false
|
24
|
+
@options = options
|
25
|
+
return unless @caching
|
26
|
+
|
27
|
+
@cache = Aws::S3.express_credentials_cache
|
28
|
+
end
|
29
|
+
|
30
|
+
def express_credentials_for(bucket)
|
31
|
+
if @caching
|
32
|
+
cached_credentials_for(bucket)
|
33
|
+
else
|
34
|
+
new_credentials_for(bucket)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
attr_accessor :client
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def cached_credentials_for(bucket)
|
43
|
+
if @cache.key?(bucket)
|
44
|
+
@cache[bucket]
|
45
|
+
else
|
46
|
+
@cache[bucket] = new_credentials_for(bucket)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def new_credentials_for(bucket)
|
51
|
+
ExpressCredentials.new(
|
52
|
+
bucket: bucket,
|
53
|
+
client: @client,
|
54
|
+
**@options
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -44,7 +44,7 @@ module Aws
|
|
44
44
|
|
45
45
|
validate!
|
46
46
|
|
47
|
-
Aws::Plugins::UserAgent.
|
47
|
+
Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
|
48
48
|
case @mode
|
49
49
|
when 'auto' then multipart_download
|
50
50
|
when 'single_request' then single_request
|
@@ -190,7 +190,6 @@ module Aws
|
|
190
190
|
raise error
|
191
191
|
end
|
192
192
|
end
|
193
|
-
thread.abort_on_exception = true
|
194
193
|
threads << thread
|
195
194
|
end
|
196
195
|
threads.map(&:value).compact
|
@@ -37,7 +37,7 @@ module Aws
|
|
37
37
|
# objects smaller than the multipart threshold.
|
38
38
|
# @return [void]
|
39
39
|
def upload(source, options = {})
|
40
|
-
Aws::Plugins::UserAgent.
|
40
|
+
Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
|
41
41
|
if File.size(source) >= multipart_threshold
|
42
42
|
MultipartFileUploader.new(@options).upload(source, options)
|
43
43
|
else
|
@@ -89,12 +89,13 @@ module Aws
|
|
89
89
|
key: options[:key],
|
90
90
|
upload_id: upload_id
|
91
91
|
)
|
92
|
-
msg = "multipart upload failed: #{errors.map(&:message).join(
|
92
|
+
msg = "multipart upload failed: #{errors.map(&:message).join('; ')}"
|
93
93
|
raise MultipartUploadError.new(msg, errors)
|
94
94
|
rescue MultipartUploadError => error
|
95
95
|
raise error
|
96
96
|
rescue => error
|
97
|
-
msg = "failed to abort multipart upload: #{error.message}"
|
97
|
+
msg = "failed to abort multipart upload: #{error.message}. "\
|
98
|
+
"Multipart upload failed: #{errors.map(&:message).join('; ')}"
|
98
99
|
raise MultipartUploadError.new(msg, errors + [error])
|
99
100
|
end
|
100
101
|
|
@@ -146,7 +147,7 @@ module Aws
|
|
146
147
|
if (callback = options[:progress_callback])
|
147
148
|
progress = MultipartProgress.new(pending, callback)
|
148
149
|
end
|
149
|
-
@thread_count.times do
|
150
|
+
options.fetch(:thread_count, @thread_count).times do
|
150
151
|
thread = Thread.new do
|
151
152
|
begin
|
152
153
|
while part = pending.shift
|
@@ -175,7 +176,6 @@ module Aws
|
|
175
176
|
error
|
176
177
|
end
|
177
178
|
end
|
178
|
-
thread.abort_on_exception = true
|
179
179
|
threads << thread
|
180
180
|
end
|
181
181
|
threads.map(&:value).compact
|
@@ -43,9 +43,10 @@ module Aws
|
|
43
43
|
|
44
44
|
# @option options [required,String] :bucket
|
45
45
|
# @option options [required,String] :key
|
46
|
+
# @option options [Integer] :thread_count (THREAD_COUNT)
|
46
47
|
# @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse
|
47
48
|
def upload(options = {}, &block)
|
48
|
-
Aws::Plugins::UserAgent.
|
49
|
+
Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
|
49
50
|
upload_id = initiate_upload(options)
|
50
51
|
parts = upload_parts(upload_id, options, &block)
|
51
52
|
complete_upload(upload_id, parts, options)
|
@@ -101,12 +102,13 @@ module Aws
|
|
101
102
|
key: options[:key],
|
102
103
|
upload_id: upload_id
|
103
104
|
)
|
104
|
-
msg = "multipart upload failed: #{errors.map(&:message).join(
|
105
|
+
msg = "multipart upload failed: #{errors.map(&:message).join('; ')}"
|
105
106
|
raise MultipartUploadError.new(msg, errors)
|
106
107
|
rescue MultipartUploadError => error
|
107
108
|
raise error
|
108
109
|
rescue => error
|
109
|
-
msg = "failed to abort multipart upload: #{error.message}"
|
110
|
+
msg = "failed to abort multipart upload: #{error.message}. "\
|
111
|
+
"Multipart upload failed: #{errors.map(&:message).join('; ')}"
|
110
112
|
raise MultipartUploadError.new(msg, errors + [error])
|
111
113
|
end
|
112
114
|
|
@@ -151,7 +153,7 @@ module Aws
|
|
151
153
|
def upload_in_threads(read_pipe, completed, options, thread_errors)
|
152
154
|
mutex = Mutex.new
|
153
155
|
part_number = 0
|
154
|
-
@thread_count.times.map do
|
156
|
+
options.fetch(:thread_count, @thread_count).times.map do
|
155
157
|
thread = Thread.new do
|
156
158
|
begin
|
157
159
|
loop do
|
@@ -192,7 +194,6 @@ module Aws
|
|
192
194
|
error
|
193
195
|
end
|
194
196
|
end
|
195
|
-
thread.abort_on_exception = true
|
196
197
|
thread
|
197
198
|
end
|
198
199
|
end
|
@@ -69,6 +69,11 @@ module Aws::S3
|
|
69
69
|
end
|
70
70
|
|
71
71
|
# The class of storage used to store the object.
|
72
|
+
#
|
73
|
+
# <note markdown="1"> **Directory buckets** - Only the S3 Express One Zone storage class is
|
74
|
+
# supported by directory buckets to store objects.
|
75
|
+
#
|
76
|
+
# </note>
|
72
77
|
# @return [String]
|
73
78
|
def storage_class
|
74
79
|
data[:storage_class]
|
@@ -76,6 +81,11 @@ module Aws::S3
|
|
76
81
|
|
77
82
|
# Specifies the owner of the object that is part of the multipart
|
78
83
|
# upload.
|
84
|
+
#
|
85
|
+
# <note markdown="1"> **Directory buckets** - The bucket owner is returned as the object
|
86
|
+
# owner for all the objects.
|
87
|
+
#
|
88
|
+
# </note>
|
79
89
|
# @return [Types::Owner]
|
80
90
|
def owner
|
81
91
|
data[:owner]
|
@@ -217,7 +227,7 @@ module Aws::S3
|
|
217
227
|
:retry
|
218
228
|
end
|
219
229
|
end
|
220
|
-
Aws::Plugins::UserAgent.
|
230
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
221
231
|
Aws::Waiters::Waiter.new(options).wait({})
|
222
232
|
end
|
223
233
|
end
|
@@ -229,24 +239,40 @@ module Aws::S3
|
|
229
239
|
# multipart_upload.abort({
|
230
240
|
# request_payer: "requester", # accepts requester
|
231
241
|
# expected_bucket_owner: "AccountId",
|
242
|
+
# if_match_initiated_time: Time.now,
|
232
243
|
# })
|
233
244
|
# @param [Hash] options ({})
|
234
245
|
# @option options [String] :request_payer
|
235
246
|
# Confirms that the requester knows that they will be charged for the
|
236
247
|
# request. Bucket owners need not specify this parameter in their
|
237
|
-
# requests. If either the source or destination
|
238
|
-
#
|
239
|
-
#
|
240
|
-
#
|
241
|
-
#
|
248
|
+
# requests. If either the source or destination S3 bucket has Requester
|
249
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
250
|
+
# the object. For information about downloading objects from Requester
|
251
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
252
|
+
# in the *Amazon S3 User Guide*.
|
253
|
+
#
|
254
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
255
|
+
#
|
256
|
+
# </note>
|
242
257
|
#
|
243
258
|
#
|
244
259
|
#
|
245
260
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
246
261
|
# @option options [String] :expected_bucket_owner
|
247
|
-
# The account ID of the expected bucket owner. If the
|
248
|
-
#
|
249
|
-
# Forbidden` (access denied).
|
262
|
+
# The account ID of the expected bucket owner. If the account ID that
|
263
|
+
# you provide does not match the actual owner of the bucket, the request
|
264
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
265
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_match_initiated_time
|
266
|
+
# If present, this header aborts an in progress multipart upload only if
|
267
|
+
# it was initiated on the provided timestamp. If the initiated timestamp
|
268
|
+
# of the multipart upload does not match the provided value, the
|
269
|
+
# operation returns a `412 Precondition Failed` error. If the initiated
|
270
|
+
# timestamp matches or if the multipart upload doesn’t exist, the
|
271
|
+
# operation returns a `204 Success (No Content)` response.
|
272
|
+
#
|
273
|
+
# <note markdown="1"> This functionality is only supported for directory buckets.
|
274
|
+
#
|
275
|
+
# </note>
|
250
276
|
# @return [Types::AbortMultipartUploadOutput]
|
251
277
|
def abort(options = {})
|
252
278
|
options = options.merge(
|
@@ -254,7 +280,7 @@ module Aws::S3
|
|
254
280
|
key: @object_key,
|
255
281
|
upload_id: @id
|
256
282
|
)
|
257
|
-
resp = Aws::Plugins::UserAgent.
|
283
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
258
284
|
@client.abort_multipart_upload(options)
|
259
285
|
end
|
260
286
|
resp.data
|
@@ -281,6 +307,8 @@ module Aws::S3
|
|
281
307
|
# checksum_sha256: "ChecksumSHA256",
|
282
308
|
# request_payer: "requester", # accepts requester
|
283
309
|
# expected_bucket_owner: "AccountId",
|
310
|
+
# if_match: "IfMatch",
|
311
|
+
# if_none_match: "IfNoneMatch",
|
284
312
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
285
313
|
# sse_customer_key: "SSECustomerKey",
|
286
314
|
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
@@ -291,9 +319,9 @@ module Aws::S3
|
|
291
319
|
# @option options [String] :checksum_crc32
|
292
320
|
# This header can be used as a data integrity check to verify that the
|
293
321
|
# data received is the same data that was originally sent. This header
|
294
|
-
# specifies the base64-encoded, 32-bit
|
295
|
-
# more information, see [Checking object integrity][1] in the
|
296
|
-
# User Guide*.
|
322
|
+
# specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
|
323
|
+
# For more information, see [Checking object integrity][1] in the
|
324
|
+
# *Amazon S3 User Guide*.
|
297
325
|
#
|
298
326
|
#
|
299
327
|
#
|
@@ -301,7 +329,7 @@ module Aws::S3
|
|
301
329
|
# @option options [String] :checksum_crc32c
|
302
330
|
# This header can be used as a data integrity check to verify that the
|
303
331
|
# data received is the same data that was originally sent. This header
|
304
|
-
# specifies the base64-encoded, 32-bit
|
332
|
+
# specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
|
305
333
|
# For more information, see [Checking object integrity][1] in the
|
306
334
|
# *Amazon S3 User Guide*.
|
307
335
|
#
|
@@ -331,34 +359,86 @@ module Aws::S3
|
|
331
359
|
# @option options [String] :request_payer
|
332
360
|
# Confirms that the requester knows that they will be charged for the
|
333
361
|
# request. Bucket owners need not specify this parameter in their
|
334
|
-
# requests. If either the source or destination
|
335
|
-
#
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
362
|
+
# requests. If either the source or destination S3 bucket has Requester
|
363
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
364
|
+
# the object. For information about downloading objects from Requester
|
365
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
366
|
+
# in the *Amazon S3 User Guide*.
|
367
|
+
#
|
368
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
369
|
+
#
|
370
|
+
# </note>
|
339
371
|
#
|
340
372
|
#
|
341
373
|
#
|
342
374
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
343
375
|
# @option options [String] :expected_bucket_owner
|
344
|
-
# The account ID of the expected bucket owner. If the
|
345
|
-
#
|
346
|
-
# Forbidden` (access denied).
|
376
|
+
# The account ID of the expected bucket owner. If the account ID that
|
377
|
+
# you provide does not match the actual owner of the bucket, the request
|
378
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
379
|
+
# @option options [String] :if_match
|
380
|
+
# Uploads the object only if the ETag (entity tag) value provided during
|
381
|
+
# the WRITE operation matches the ETag of the object in S3. If the ETag
|
382
|
+
# values do not match, the operation returns a `412 Precondition Failed`
|
383
|
+
# error.
|
384
|
+
#
|
385
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
386
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
387
|
+
# fetch the object's ETag, re-initiate the multipart upload with
|
388
|
+
# `CreateMultipartUpload`, and re-upload each part.
|
389
|
+
#
|
390
|
+
# Expects the ETag value as a string.
|
391
|
+
#
|
392
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
393
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
394
|
+
#
|
395
|
+
#
|
396
|
+
#
|
397
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
398
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
399
|
+
# @option options [String] :if_none_match
|
400
|
+
# Uploads the object only if the object key name does not already exist
|
401
|
+
# in the bucket specified. Otherwise, Amazon S3 returns a `412
|
402
|
+
# Precondition Failed` error.
|
403
|
+
#
|
404
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
405
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
406
|
+
# re-initiate the multipart upload with `CreateMultipartUpload` and
|
407
|
+
# re-upload each part.
|
408
|
+
#
|
409
|
+
# Expects the '*' (asterisk) character.
|
410
|
+
#
|
411
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
412
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
413
|
+
#
|
414
|
+
#
|
415
|
+
#
|
416
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
417
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
347
418
|
# @option options [String] :sse_customer_algorithm
|
348
419
|
# The server-side encryption (SSE) algorithm used to encrypt the object.
|
349
|
-
# This parameter is
|
350
|
-
# checksum algorithm
|
351
|
-
# SSE-C keys][1] in the
|
420
|
+
# This parameter is required only when the object was created using a
|
421
|
+
# checksum algorithm or if your bucket policy requires the use of SSE-C.
|
422
|
+
# For more information, see [Protecting data using SSE-C keys][1] in the
|
423
|
+
# *Amazon S3 User Guide*.
|
352
424
|
#
|
425
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
353
426
|
#
|
427
|
+
# </note>
|
354
428
|
#
|
355
|
-
#
|
429
|
+
#
|
430
|
+
#
|
431
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key
|
356
432
|
# @option options [String] :sse_customer_key
|
357
433
|
# The server-side encryption (SSE) customer managed key. This parameter
|
358
434
|
# is needed only when the object was created using a checksum algorithm.
|
359
435
|
# For more information, see [Protecting data using SSE-C keys][1] in the
|
360
436
|
# *Amazon S3 User Guide*.
|
361
437
|
#
|
438
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
439
|
+
#
|
440
|
+
# </note>
|
441
|
+
#
|
362
442
|
#
|
363
443
|
#
|
364
444
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
@@ -368,6 +448,10 @@ module Aws::S3
|
|
368
448
|
# algorithm. For more information, see [Protecting data using SSE-C
|
369
449
|
# keys][1] in the *Amazon S3 User Guide*.
|
370
450
|
#
|
451
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
452
|
+
#
|
453
|
+
# </note>
|
454
|
+
#
|
371
455
|
#
|
372
456
|
#
|
373
457
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
@@ -378,7 +462,7 @@ module Aws::S3
|
|
378
462
|
key: @object_key,
|
379
463
|
upload_id: @id
|
380
464
|
)
|
381
|
-
Aws::Plugins::UserAgent.
|
465
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
382
466
|
@client.complete_multipart_upload(options)
|
383
467
|
end
|
384
468
|
Object.new(
|
@@ -424,25 +508,33 @@ module Aws::S3
|
|
424
508
|
# @option options [String] :request_payer
|
425
509
|
# Confirms that the requester knows that they will be charged for the
|
426
510
|
# request. Bucket owners need not specify this parameter in their
|
427
|
-
# requests. If either the source or destination
|
428
|
-
#
|
429
|
-
#
|
430
|
-
#
|
431
|
-
#
|
511
|
+
# requests. If either the source or destination S3 bucket has Requester
|
512
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
513
|
+
# the object. For information about downloading objects from Requester
|
514
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
515
|
+
# in the *Amazon S3 User Guide*.
|
516
|
+
#
|
517
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
518
|
+
#
|
519
|
+
# </note>
|
432
520
|
#
|
433
521
|
#
|
434
522
|
#
|
435
523
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
436
524
|
# @option options [String] :expected_bucket_owner
|
437
|
-
# The account ID of the expected bucket owner. If the
|
438
|
-
#
|
439
|
-
# Forbidden` (access denied).
|
525
|
+
# The account ID of the expected bucket owner. If the account ID that
|
526
|
+
# you provide does not match the actual owner of the bucket, the request
|
527
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
440
528
|
# @option options [String] :sse_customer_algorithm
|
441
529
|
# The server-side encryption (SSE) algorithm used to encrypt the object.
|
442
530
|
# This parameter is needed only when the object was created using a
|
443
531
|
# checksum algorithm. For more information, see [Protecting data using
|
444
532
|
# SSE-C keys][1] in the *Amazon S3 User Guide*.
|
445
533
|
#
|
534
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
535
|
+
#
|
536
|
+
# </note>
|
537
|
+
#
|
446
538
|
#
|
447
539
|
#
|
448
540
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
@@ -452,6 +544,10 @@ module Aws::S3
|
|
452
544
|
# For more information, see [Protecting data using SSE-C keys][1] in the
|
453
545
|
# *Amazon S3 User Guide*.
|
454
546
|
#
|
547
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
548
|
+
#
|
549
|
+
# </note>
|
550
|
+
#
|
455
551
|
#
|
456
552
|
#
|
457
553
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
@@ -461,6 +557,10 @@ module Aws::S3
|
|
461
557
|
# algorithm. For more information, see [Protecting data using SSE-C
|
462
558
|
# keys][1] in the *Amazon S3 User Guide*.
|
463
559
|
#
|
560
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
561
|
+
#
|
562
|
+
# </note>
|
563
|
+
#
|
464
564
|
#
|
465
565
|
#
|
466
566
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
@@ -472,7 +572,7 @@ module Aws::S3
|
|
472
572
|
key: @object_key,
|
473
573
|
upload_id: @id
|
474
574
|
)
|
475
|
-
resp = Aws::Plugins::UserAgent.
|
575
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
476
576
|
@client.list_parts(options)
|
477
577
|
end
|
478
578
|
resp.each_page do |page|
|
@@ -542,3 +642,6 @@ module Aws::S3
|
|
542
642
|
class Collection < Aws::Resources::Collection; end
|
543
643
|
end
|
544
644
|
end
|
645
|
+
|
646
|
+
# Load customizations if they exist
|
647
|
+
require 'aws-sdk-s3/customizations/multipart_upload'
|