aws-sdk-s3 1.109.0 → 1.156.0
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 +352 -0
- 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 +241 -0
- data/lib/aws-sdk-s3/bucket.rb +585 -110
- data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
- data/lib/aws-sdk-s3/bucket_cors.rb +34 -10
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +34 -10
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +34 -10
- data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
- data/lib/aws-sdk-s3/bucket_notification.rb +12 -6
- data/lib/aws-sdk-s3/bucket_policy.rb +78 -10
- data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
- data/lib/aws-sdk-s3/bucket_request_payment.rb +28 -6
- data/lib/aws-sdk-s3/bucket_tagging.rb +34 -10
- data/lib/aws-sdk-s3/bucket_versioning.rb +72 -14
- data/lib/aws-sdk-s3/bucket_website.rb +34 -10
- data/lib/aws-sdk-s3/client.rb +7900 -3252
- data/lib/aws-sdk-s3/client_api.rb +706 -228
- data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
- data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
- data/lib/aws-sdk-s3/customizations/object.rb +97 -21
- data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
- data/lib/aws-sdk-s3/customizations.rb +10 -0
- data/lib/aws-sdk-s3/encryption/client.rb +6 -2
- data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
- data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
- data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
- data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
- data/lib/aws-sdk-s3/endpoint_parameters.rb +186 -0
- data/lib/aws-sdk-s3/endpoint_provider.rb +592 -0
- data/lib/aws-sdk-s3/endpoints.rb +2689 -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 +170 -45
- data/lib/aws-sdk-s3/file_uploader.rb +11 -4
- data/lib/aws-sdk-s3/multipart_file_uploader.rb +30 -11
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +46 -17
- data/lib/aws-sdk-s3/multipart_upload.rb +194 -19
- data/lib/aws-sdk-s3/multipart_upload_part.rb +280 -30
- data/lib/aws-sdk-s3/object.rb +1753 -266
- data/lib/aws-sdk-s3/object_acl.rb +49 -13
- data/lib/aws-sdk-s3/object_copier.rb +7 -5
- data/lib/aws-sdk-s3/object_multipart_copier.rb +46 -22
- data/lib/aws-sdk-s3/object_summary.rb +1497 -221
- data/lib/aws-sdk-s3/object_version.rb +383 -58
- data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -50
- data/lib/aws-sdk-s3/plugins/access_grants.rb +114 -0
- data/lib/aws-sdk-s3/plugins/arn.rb +0 -184
- 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 +1 -49
- data/lib/aws-sdk-s3/plugins/endpoints.rb +274 -0
- data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
- data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
- data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
- data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
- data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
- data/lib/aws-sdk-s3/plugins/md5s.rb +6 -3
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -126
- 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 +99 -78
- data/lib/aws-sdk-s3/presigner.rb +28 -37
- data/lib/aws-sdk-s3/resource.rb +89 -13
- data/lib/aws-sdk-s3/types.rb +6544 -4909
- data/lib/aws-sdk-s3.rb +5 -1
- data/sig/bucket.rbs +212 -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 +111 -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 +2381 -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 +34 -0
- data/sig/multipart_upload.rbs +110 -0
- data/sig/multipart_upload_part.rbs +105 -0
- data/sig/object.rbs +442 -0
- data/sig/object_acl.rbs +86 -0
- data/sig/object_summary.rbs +334 -0
- data/sig/object_version.rbs +137 -0
- data/sig/resource.rbs +127 -0
- data/sig/types.rbs +2568 -0
- data/sig/waiters.rbs +95 -0
- metadata +50 -16
- data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
- data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -68
- data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
- data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -74
- data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
data/lib/aws-sdk-s3/object.rb
CHANGED
@@ -45,6 +45,10 @@ module Aws::S3
|
|
45
45
|
# Specifies whether the object retrieved was (true) or was not (false) a
|
46
46
|
# Delete Marker. If false, this response header does not appear in the
|
47
47
|
# response.
|
48
|
+
#
|
49
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
50
|
+
#
|
51
|
+
# </note>
|
48
52
|
# @return [Boolean]
|
49
53
|
def delete_marker
|
50
54
|
data[:delete_marker]
|
@@ -56,10 +60,19 @@ module Aws::S3
|
|
56
60
|
data[:accept_ranges]
|
57
61
|
end
|
58
62
|
|
59
|
-
# If the object expiration is configured (see
|
60
|
-
#
|
61
|
-
#
|
62
|
-
# the rule-id is
|
63
|
+
# If the object expiration is configured (see [
|
64
|
+
# `PutBucketLifecycleConfiguration` ][1]), the response includes this
|
65
|
+
# header. It includes the `expiry-date` and `rule-id` key-value pairs
|
66
|
+
# providing object expiration information. The value of the `rule-id` is
|
67
|
+
# URL-encoded.
|
68
|
+
#
|
69
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
70
|
+
#
|
71
|
+
# </note>
|
72
|
+
#
|
73
|
+
#
|
74
|
+
#
|
75
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
|
63
76
|
# @return [String]
|
64
77
|
def expiration
|
65
78
|
data[:expiration]
|
@@ -82,6 +95,12 @@ module Aws::S3
|
|
82
95
|
# For more information about archiving objects, see [Transitioning
|
83
96
|
# Objects: General Considerations][2].
|
84
97
|
#
|
98
|
+
# <note markdown="1"> This functionality is not supported for directory buckets. Only the S3
|
99
|
+
# Express One Zone storage class is supported by directory buckets to
|
100
|
+
# store objects.
|
101
|
+
#
|
102
|
+
# </note>
|
103
|
+
#
|
85
104
|
#
|
86
105
|
#
|
87
106
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
|
@@ -92,12 +111,16 @@ module Aws::S3
|
|
92
111
|
end
|
93
112
|
|
94
113
|
# The archive state of the head object.
|
114
|
+
#
|
115
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
116
|
+
#
|
117
|
+
# </note>
|
95
118
|
# @return [String]
|
96
119
|
def archive_status
|
97
120
|
data[:archive_status]
|
98
121
|
end
|
99
122
|
|
100
|
-
#
|
123
|
+
# Date and time when the object was last modified.
|
101
124
|
# @return [Time]
|
102
125
|
def last_modified
|
103
126
|
data[:last_modified]
|
@@ -109,8 +132,76 @@ module Aws::S3
|
|
109
132
|
data[:content_length]
|
110
133
|
end
|
111
134
|
|
112
|
-
#
|
113
|
-
#
|
135
|
+
# The base64-encoded, 32-bit CRC32 checksum of the object. This will
|
136
|
+
# only be present if it was uploaded with the object. When you use an
|
137
|
+
# API operation on an object that was uploaded using multipart uploads,
|
138
|
+
# this value may not be a direct checksum value of the full object.
|
139
|
+
# Instead, it's a calculation based on the checksum values of each
|
140
|
+
# individual part. For more information about how checksums are
|
141
|
+
# calculated with multipart uploads, see [ Checking object integrity][1]
|
142
|
+
# in the *Amazon S3 User Guide*.
|
143
|
+
#
|
144
|
+
#
|
145
|
+
#
|
146
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
|
147
|
+
# @return [String]
|
148
|
+
def checksum_crc32
|
149
|
+
data[:checksum_crc32]
|
150
|
+
end
|
151
|
+
|
152
|
+
# The base64-encoded, 32-bit CRC32C checksum of the object. This will
|
153
|
+
# only be present if it was uploaded with the object. When you use an
|
154
|
+
# API operation on an object that was uploaded using multipart uploads,
|
155
|
+
# this value may not be a direct checksum value of the full object.
|
156
|
+
# Instead, it's a calculation based on the checksum values of each
|
157
|
+
# individual part. For more information about how checksums are
|
158
|
+
# calculated with multipart uploads, see [ Checking object integrity][1]
|
159
|
+
# in the *Amazon S3 User Guide*.
|
160
|
+
#
|
161
|
+
#
|
162
|
+
#
|
163
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
|
164
|
+
# @return [String]
|
165
|
+
def checksum_crc32c
|
166
|
+
data[:checksum_crc32c]
|
167
|
+
end
|
168
|
+
|
169
|
+
# The base64-encoded, 160-bit SHA-1 digest of the object. This will only
|
170
|
+
# be present if it was uploaded with the object. When you use the API
|
171
|
+
# operation on an object that was uploaded using multipart uploads, this
|
172
|
+
# value may not be a direct checksum value of the full object. Instead,
|
173
|
+
# it's a calculation based on the checksum values of each individual
|
174
|
+
# part. For more information about how checksums are calculated with
|
175
|
+
# multipart uploads, see [ Checking object integrity][1] in the *Amazon
|
176
|
+
# S3 User Guide*.
|
177
|
+
#
|
178
|
+
#
|
179
|
+
#
|
180
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
|
181
|
+
# @return [String]
|
182
|
+
def checksum_sha1
|
183
|
+
data[:checksum_sha1]
|
184
|
+
end
|
185
|
+
|
186
|
+
# The base64-encoded, 256-bit SHA-256 digest of the object. This will
|
187
|
+
# only be present if it was uploaded with the object. When you use an
|
188
|
+
# API operation on an object that was uploaded using multipart uploads,
|
189
|
+
# this value may not be a direct checksum value of the full object.
|
190
|
+
# Instead, it's a calculation based on the checksum values of each
|
191
|
+
# individual part. For more information about how checksums are
|
192
|
+
# calculated with multipart uploads, see [ Checking object integrity][1]
|
193
|
+
# in the *Amazon S3 User Guide*.
|
194
|
+
#
|
195
|
+
#
|
196
|
+
#
|
197
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
|
198
|
+
# @return [String]
|
199
|
+
def checksum_sha256
|
200
|
+
data[:checksum_sha256]
|
201
|
+
end
|
202
|
+
|
203
|
+
# An entity tag (ETag) is an opaque identifier assigned by a web server
|
204
|
+
# to a specific version of a resource found at a URL.
|
114
205
|
# @return [String]
|
115
206
|
def etag
|
116
207
|
data[:etag]
|
@@ -121,12 +212,20 @@ module Aws::S3
|
|
121
212
|
# API like SOAP that supports more flexible metadata than the REST API.
|
122
213
|
# For example, using SOAP, you can create metadata whose values are not
|
123
214
|
# legal HTTP headers.
|
215
|
+
#
|
216
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
217
|
+
#
|
218
|
+
# </note>
|
124
219
|
# @return [Integer]
|
125
220
|
def missing_meta
|
126
221
|
data[:missing_meta]
|
127
222
|
end
|
128
223
|
|
129
|
-
# Version of the object.
|
224
|
+
# Version ID of the object.
|
225
|
+
#
|
226
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
227
|
+
#
|
228
|
+
# </note>
|
130
229
|
# @return [String]
|
131
230
|
def version_id
|
132
231
|
data[:version_id]
|
@@ -144,7 +243,7 @@ module Aws::S3
|
|
144
243
|
data[:content_disposition]
|
145
244
|
end
|
146
245
|
|
147
|
-
#
|
246
|
+
# Indicates what content encodings have been applied to the object and
|
148
247
|
# thus what decoding mechanisms must be applied to obtain the media-type
|
149
248
|
# referenced by the Content-Type header field.
|
150
249
|
# @return [String]
|
@@ -178,16 +277,22 @@ module Aws::S3
|
|
178
277
|
# If the bucket is configured as a website, redirects requests for this
|
179
278
|
# object to another object in the same bucket or to an external URL.
|
180
279
|
# Amazon S3 stores the value of this header in the object metadata.
|
280
|
+
#
|
281
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
282
|
+
#
|
283
|
+
# </note>
|
181
284
|
# @return [String]
|
182
285
|
def website_redirect_location
|
183
286
|
data[:website_redirect_location]
|
184
287
|
end
|
185
288
|
|
186
|
-
#
|
187
|
-
# Amazon
|
188
|
-
#
|
189
|
-
#
|
190
|
-
#
|
289
|
+
# The server-side encryption algorithm used when you store this object
|
290
|
+
# in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
|
291
|
+
#
|
292
|
+
# <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
|
293
|
+
# managed keys (SSE-S3) (`AES256`) is supported.
|
294
|
+
#
|
295
|
+
# </note>
|
191
296
|
# @return [String]
|
192
297
|
def server_side_encryption
|
193
298
|
data[:server_side_encryption]
|
@@ -200,32 +305,48 @@ module Aws::S3
|
|
200
305
|
end
|
201
306
|
|
202
307
|
# If server-side encryption with a customer-provided encryption key was
|
203
|
-
# requested, the response will include this header
|
204
|
-
# encryption algorithm used.
|
308
|
+
# requested, the response will include this header to confirm the
|
309
|
+
# encryption algorithm that's used.
|
310
|
+
#
|
311
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
312
|
+
#
|
313
|
+
# </note>
|
205
314
|
# @return [String]
|
206
315
|
def sse_customer_algorithm
|
207
316
|
data[:sse_customer_algorithm]
|
208
317
|
end
|
209
318
|
|
210
319
|
# If server-side encryption with a customer-provided encryption key was
|
211
|
-
# requested, the response will include this header to provide
|
212
|
-
# message integrity verification of the customer-provided
|
213
|
-
# key.
|
320
|
+
# requested, the response will include this header to provide the
|
321
|
+
# round-trip message integrity verification of the customer-provided
|
322
|
+
# encryption key.
|
323
|
+
#
|
324
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
325
|
+
#
|
326
|
+
# </note>
|
214
327
|
# @return [String]
|
215
328
|
def sse_customer_key_md5
|
216
329
|
data[:sse_customer_key_md5]
|
217
330
|
end
|
218
331
|
|
219
|
-
# If present,
|
220
|
-
#
|
221
|
-
#
|
332
|
+
# If present, indicates the ID of the Key Management Service (KMS)
|
333
|
+
# symmetric encryption customer managed key that was used for the
|
334
|
+
# object.
|
335
|
+
#
|
336
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
337
|
+
#
|
338
|
+
# </note>
|
222
339
|
# @return [String]
|
223
340
|
def ssekms_key_id
|
224
341
|
data[:ssekms_key_id]
|
225
342
|
end
|
226
343
|
|
227
344
|
# Indicates whether the object uses an S3 Bucket Key for server-side
|
228
|
-
# encryption with
|
345
|
+
# encryption with Key Management Service (KMS) keys (SSE-KMS).
|
346
|
+
#
|
347
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
348
|
+
#
|
349
|
+
# </note>
|
229
350
|
# @return [Boolean]
|
230
351
|
def bucket_key_enabled
|
231
352
|
data[:bucket_key_enabled]
|
@@ -237,6 +358,11 @@ module Aws::S3
|
|
237
358
|
#
|
238
359
|
# For more information, see [Storage Classes][1].
|
239
360
|
#
|
361
|
+
# <note markdown="1"> <b>Directory buckets </b> - Only the S3 Express One Zone storage class
|
362
|
+
# is supported by directory buckets to store objects.
|
363
|
+
#
|
364
|
+
# </note>
|
365
|
+
#
|
240
366
|
#
|
241
367
|
#
|
242
368
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
|
@@ -247,6 +373,10 @@ module Aws::S3
|
|
247
373
|
|
248
374
|
# If present, indicates that the requester was successfully charged for
|
249
375
|
# the request.
|
376
|
+
#
|
377
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
378
|
+
#
|
379
|
+
# </note>
|
250
380
|
# @return [String]
|
251
381
|
def request_charged
|
252
382
|
data[:request_charged]
|
@@ -261,7 +391,7 @@ module Aws::S3
|
|
261
391
|
# metadata (`HeadObject`) from these buckets, Amazon S3 will return the
|
262
392
|
# `x-amz-replication-status` header in the response as follows:
|
263
393
|
#
|
264
|
-
# * If requesting an object from the source bucket
|
394
|
+
# * **If requesting an object from the source bucket**, Amazon S3 will
|
265
395
|
# return the `x-amz-replication-status` header if the object in your
|
266
396
|
# request is eligible for replication.
|
267
397
|
#
|
@@ -274,12 +404,12 @@ module Aws::S3
|
|
274
404
|
# value PENDING, COMPLETED or FAILED indicating object replication
|
275
405
|
# status.
|
276
406
|
#
|
277
|
-
# * If requesting an object from a destination bucket
|
278
|
-
# return the `x-amz-replication-status` header with value REPLICA
|
279
|
-
# the object in your request is a replica that Amazon S3 created
|
280
|
-
# there is no replica modification replication in progress.
|
407
|
+
# * **If requesting an object from a destination bucket**, Amazon S3
|
408
|
+
# will return the `x-amz-replication-status` header with value REPLICA
|
409
|
+
# if the object in your request is a replica that Amazon S3 created
|
410
|
+
# and there is no replica modification replication in progress.
|
281
411
|
#
|
282
|
-
# * When replicating objects to multiple destination buckets the
|
412
|
+
# * **When replicating objects to multiple destination buckets**, the
|
283
413
|
# `x-amz-replication-status` header acts differently. The header of
|
284
414
|
# the source object will only return a value of COMPLETED when
|
285
415
|
# replication is successful to all destinations. The header will
|
@@ -289,6 +419,10 @@ module Aws::S3
|
|
289
419
|
#
|
290
420
|
# For more information, see [Replication][1].
|
291
421
|
#
|
422
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
423
|
+
#
|
424
|
+
# </note>
|
425
|
+
#
|
292
426
|
#
|
293
427
|
#
|
294
428
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
|
@@ -297,7 +431,9 @@ module Aws::S3
|
|
297
431
|
data[:replication_status]
|
298
432
|
end
|
299
433
|
|
300
|
-
# The count of parts this object has.
|
434
|
+
# The count of parts this object has. This value is only returned if you
|
435
|
+
# specify `partNumber` in your request and the object was uploaded as a
|
436
|
+
# multipart upload.
|
301
437
|
# @return [Integer]
|
302
438
|
def parts_count
|
303
439
|
data[:parts_count]
|
@@ -308,6 +444,10 @@ module Aws::S3
|
|
308
444
|
# `s3:GetObjectRetention` permission. For more information about S3
|
309
445
|
# Object Lock, see [Object Lock][1].
|
310
446
|
#
|
447
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
448
|
+
#
|
449
|
+
# </note>
|
450
|
+
#
|
311
451
|
#
|
312
452
|
#
|
313
453
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
|
@@ -319,6 +459,10 @@ module Aws::S3
|
|
319
459
|
# The date and time when the Object Lock retention period expires. This
|
320
460
|
# header is only returned if the requester has the
|
321
461
|
# `s3:GetObjectRetention` permission.
|
462
|
+
#
|
463
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
464
|
+
#
|
465
|
+
# </note>
|
322
466
|
# @return [Time]
|
323
467
|
def object_lock_retain_until_date
|
324
468
|
data[:object_lock_retain_until_date]
|
@@ -330,6 +474,10 @@ module Aws::S3
|
|
330
474
|
# specified version of this object has never had a legal hold applied.
|
331
475
|
# For more information about S3 Object Lock, see [Object Lock][1].
|
332
476
|
#
|
477
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
478
|
+
#
|
479
|
+
# </note>
|
480
|
+
#
|
333
481
|
#
|
334
482
|
#
|
335
483
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
|
@@ -352,10 +500,12 @@ module Aws::S3
|
|
352
500
|
#
|
353
501
|
# @return [self]
|
354
502
|
def load
|
355
|
-
resp =
|
503
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
504
|
+
@client.head_object(
|
356
505
|
bucket: @bucket_name,
|
357
506
|
key: @key
|
358
507
|
)
|
508
|
+
end
|
359
509
|
@data = resp.data
|
360
510
|
self
|
361
511
|
end
|
@@ -400,8 +550,10 @@ module Aws::S3
|
|
400
550
|
options, params = separate_params_and_options(options)
|
401
551
|
waiter = Waiters::ObjectExists.new(options)
|
402
552
|
yield_waiter_and_warn(waiter, &block) if block_given?
|
403
|
-
|
553
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
554
|
+
waiter.wait(params.merge(bucket: @bucket_name,
|
404
555
|
key: @key))
|
556
|
+
end
|
405
557
|
Object.new({
|
406
558
|
bucket_name: @bucket_name,
|
407
559
|
key: @key,
|
@@ -419,8 +571,10 @@ module Aws::S3
|
|
419
571
|
options, params = separate_params_and_options(options)
|
420
572
|
waiter = Waiters::ObjectNotExists.new(options)
|
421
573
|
yield_waiter_and_warn(waiter, &block) if block_given?
|
422
|
-
|
574
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
575
|
+
waiter.wait(params.merge(bucket: @bucket_name,
|
423
576
|
key: @key))
|
577
|
+
end
|
424
578
|
Object.new({
|
425
579
|
bucket_name: @bucket_name,
|
426
580
|
key: @key,
|
@@ -522,7 +676,9 @@ module Aws::S3
|
|
522
676
|
:retry
|
523
677
|
end
|
524
678
|
end
|
525
|
-
Aws::
|
679
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
680
|
+
Aws::Waiters::Waiter.new(options).wait({})
|
681
|
+
end
|
526
682
|
end
|
527
683
|
|
528
684
|
# @!group Actions
|
@@ -532,6 +688,7 @@ module Aws::S3
|
|
532
688
|
# object.copy_from({
|
533
689
|
# acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
|
534
690
|
# cache_control: "CacheControl",
|
691
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
535
692
|
# content_disposition: "ContentDisposition",
|
536
693
|
# content_encoding: "ContentEncoding",
|
537
694
|
# content_language: "ContentLanguage",
|
@@ -551,8 +708,8 @@ module Aws::S3
|
|
551
708
|
# },
|
552
709
|
# metadata_directive: "COPY", # accepts COPY, REPLACE
|
553
710
|
# tagging_directive: "COPY", # accepts COPY, REPLACE
|
554
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms
|
555
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
|
711
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
712
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
556
713
|
# website_redirect_location: "WebsiteRedirectLocation",
|
557
714
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
558
715
|
# sse_customer_key: "SSECustomerKey",
|
@@ -573,32 +730,98 @@ module Aws::S3
|
|
573
730
|
# })
|
574
731
|
# @param [Hash] options ({})
|
575
732
|
# @option options [String] :acl
|
576
|
-
# The canned ACL to apply to the object.
|
733
|
+
# The canned access control list (ACL) to apply to the object.
|
734
|
+
#
|
735
|
+
# When you copy an object, the ACL metadata is not preserved and is set
|
736
|
+
# to `private` by default. Only the owner has full access control. To
|
737
|
+
# override the default ACL setting, specify a new ACL when you generate
|
738
|
+
# a copy request. For more information, see [Using ACLs][1].
|
739
|
+
#
|
740
|
+
# If the destination bucket that you're copying objects to uses the
|
741
|
+
# bucket owner enforced setting for S3 Object Ownership, ACLs are
|
742
|
+
# disabled and no longer affect permissions. Buckets that use this
|
743
|
+
# setting only accept `PUT` requests that don't specify an ACL or `PUT`
|
744
|
+
# requests that specify bucket owner full control ACLs, such as the
|
745
|
+
# `bucket-owner-full-control` canned ACL or an equivalent form of this
|
746
|
+
# ACL expressed in the XML format. For more information, see
|
747
|
+
# [Controlling ownership of objects and disabling ACLs][2] in the
|
748
|
+
# *Amazon S3 User Guide*.
|
749
|
+
#
|
750
|
+
# <note markdown="1"> * If your destination bucket uses the bucket owner enforced setting
|
751
|
+
# for Object Ownership, all objects written to the bucket by any
|
752
|
+
# account will be owned by the bucket owner.
|
753
|
+
#
|
754
|
+
# * This functionality is not supported for directory buckets.
|
755
|
+
#
|
756
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
757
|
+
#
|
758
|
+
# </note>
|
759
|
+
#
|
577
760
|
#
|
578
|
-
#
|
761
|
+
#
|
762
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
|
763
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
|
579
764
|
# @option options [String] :cache_control
|
580
|
-
# Specifies caching behavior along the request/reply chain.
|
765
|
+
# Specifies the caching behavior along the request/reply chain.
|
766
|
+
# @option options [String] :checksum_algorithm
|
767
|
+
# Indicates the algorithm that you want Amazon S3 to use to create the
|
768
|
+
# checksum for the object. For more information, see [Checking object
|
769
|
+
# integrity][1] in the *Amazon S3 User Guide*.
|
770
|
+
#
|
771
|
+
# When you copy an object, if the source object has a checksum, that
|
772
|
+
# checksum value will be copied to the new object by default. If the
|
773
|
+
# `CopyObject` request does not include this `x-amz-checksum-algorithm`
|
774
|
+
# header, the checksum algorithm will be copied from the source object
|
775
|
+
# to the destination object (if it's present on the source object). You
|
776
|
+
# can optionally specify a different checksum algorithm to use with the
|
777
|
+
# `x-amz-checksum-algorithm` header. Unrecognized or unsupported values
|
778
|
+
# will respond with the HTTP status code `400 Bad Request`.
|
779
|
+
#
|
780
|
+
# <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
|
781
|
+
# is the default checksum algorithm that's used for performance.
|
782
|
+
#
|
783
|
+
# </note>
|
784
|
+
#
|
785
|
+
#
|
786
|
+
#
|
787
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
581
788
|
# @option options [String] :content_disposition
|
582
|
-
# Specifies presentational information for the object.
|
789
|
+
# Specifies presentational information for the object. Indicates whether
|
790
|
+
# an object should be displayed in a web browser or downloaded as a
|
791
|
+
# file. It allows specifying the desired filename for the downloaded
|
792
|
+
# file.
|
583
793
|
# @option options [String] :content_encoding
|
584
794
|
# Specifies what content encodings have been applied to the object and
|
585
795
|
# thus what decoding mechanisms must be applied to obtain the media-type
|
586
796
|
# referenced by the Content-Type header field.
|
797
|
+
#
|
798
|
+
# <note markdown="1"> For directory buckets, only the `aws-chunked` value is supported in
|
799
|
+
# this header field.
|
800
|
+
#
|
801
|
+
# </note>
|
587
802
|
# @option options [String] :content_language
|
588
803
|
# The language the content is in.
|
589
804
|
# @option options [String] :content_type
|
590
|
-
# A standard MIME type
|
805
|
+
# A standard MIME type that describes the format of the object data.
|
591
806
|
# @option options [required, String] :copy_source
|
592
|
-
# Specifies the source object for the copy operation.
|
593
|
-
#
|
594
|
-
# the
|
807
|
+
# Specifies the source object for the copy operation. The source object
|
808
|
+
# can be up to 5 GB. If the source object is an object that was uploaded
|
809
|
+
# by using a multipart upload, the object copy will be a single part
|
810
|
+
# object after the source object is copied to the destination bucket.
|
811
|
+
#
|
812
|
+
# You specify the value of the copy source in one of two formats,
|
813
|
+
# depending on whether you want to access the source object through an
|
814
|
+
# [access point][1]:
|
595
815
|
#
|
596
816
|
# * For objects not accessed through an access point, specify the name
|
597
817
|
# of the source bucket and the key of the source object, separated by
|
598
818
|
# a slash (/). For example, to copy the object `reports/january.pdf`
|
599
|
-
# from the bucket `awsexamplebucket`, use
|
600
|
-
# `awsexamplebucket/reports/january.pdf`. The value must be
|
601
|
-
# encoded.
|
819
|
+
# from the general purpose bucket `awsexamplebucket`, use
|
820
|
+
# `awsexamplebucket/reports/january.pdf`. The value must be
|
821
|
+
# URL-encoded. To copy the object `reports/january.pdf` from the
|
822
|
+
# directory bucket `awsexamplebucket--use1-az5--x-s3`, use
|
823
|
+
# `awsexamplebucket--use1-az5--x-s3/reports/january.pdf`. The value
|
824
|
+
# must be URL-encoded.
|
602
825
|
#
|
603
826
|
# * For objects accessed through access points, specify the Amazon
|
604
827
|
# Resource Name (ARN) of the object as accessed through the access
|
@@ -610,9 +833,11 @@ module Aws::S3
|
|
610
833
|
# `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
|
611
834
|
# The value must be URL encoded.
|
612
835
|
#
|
613
|
-
# <note markdown="1"> Amazon S3 supports copy operations using
|
614
|
-
#
|
615
|
-
#
|
836
|
+
# <note markdown="1"> * Amazon S3 supports copy operations using Access points only when
|
837
|
+
# the source and destination buckets are in the same Amazon Web
|
838
|
+
# Services Region.
|
839
|
+
#
|
840
|
+
# * Access points are not supported by directory buckets.
|
616
841
|
#
|
617
842
|
# </note>
|
618
843
|
#
|
@@ -623,93 +848,329 @@ module Aws::S3
|
|
623
848
|
# outpost `my-outpost` owned by account `123456789012` in Region
|
624
849
|
# `us-west-2`, use the URL encoding of
|
625
850
|
# `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
|
626
|
-
# The value must be URL
|
627
|
-
#
|
628
|
-
#
|
629
|
-
#
|
851
|
+
# The value must be URL-encoded.
|
852
|
+
#
|
853
|
+
# If your source bucket versioning is enabled, the `x-amz-copy-source`
|
854
|
+
# header by default identifies the current version of an object to copy.
|
855
|
+
# If the current version is a delete marker, Amazon S3 behaves as if the
|
856
|
+
# object was deleted. To copy a different version, use the `versionId`
|
857
|
+
# query parameter. Specifically, append `?versionId=<version-id>` to the
|
858
|
+
# value (for example,
|
630
859
|
# `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
|
631
860
|
# If you don't specify a version ID, Amazon S3 copies the latest
|
632
861
|
# version of the source object.
|
633
862
|
#
|
863
|
+
# If you enable versioning on the destination bucket, Amazon S3
|
864
|
+
# generates a unique version ID for the copied object. This version ID
|
865
|
+
# is different from the version ID of the source object. Amazon S3
|
866
|
+
# returns the version ID of the copied object in the `x-amz-version-id`
|
867
|
+
# response header in the response.
|
868
|
+
#
|
869
|
+
# If you do not enable versioning or suspend it on the destination
|
870
|
+
# bucket, the version ID that Amazon S3 generates in the
|
871
|
+
# `x-amz-version-id` response header is always null.
|
872
|
+
#
|
873
|
+
# <note markdown="1"> **Directory buckets** - S3 Versioning isn't enabled and supported for
|
874
|
+
# directory buckets.
|
875
|
+
#
|
876
|
+
# </note>
|
877
|
+
#
|
634
878
|
#
|
635
879
|
#
|
636
880
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
|
637
881
|
# @option options [String] :copy_source_if_match
|
638
882
|
# Copies the object if its entity tag (ETag) matches the specified tag.
|
883
|
+
#
|
884
|
+
# If both the `x-amz-copy-source-if-match` and
|
885
|
+
# `x-amz-copy-source-if-unmodified-since` headers are present in the
|
886
|
+
# request and evaluate as follows, Amazon S3 returns `200 OK` and copies
|
887
|
+
# the data:
|
888
|
+
#
|
889
|
+
# * `x-amz-copy-source-if-match` condition evaluates to true
|
890
|
+
#
|
891
|
+
# * `x-amz-copy-source-if-unmodified-since` condition evaluates to false
|
639
892
|
# @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
|
640
893
|
# Copies the object if it has been modified since the specified time.
|
894
|
+
#
|
895
|
+
# If both the `x-amz-copy-source-if-none-match` and
|
896
|
+
# `x-amz-copy-source-if-modified-since` headers are present in the
|
897
|
+
# request and evaluate as follows, Amazon S3 returns the `412
|
898
|
+
# Precondition Failed` response code:
|
899
|
+
#
|
900
|
+
# * `x-amz-copy-source-if-none-match` condition evaluates to false
|
901
|
+
#
|
902
|
+
# * `x-amz-copy-source-if-modified-since` condition evaluates to true
|
641
903
|
# @option options [String] :copy_source_if_none_match
|
642
904
|
# Copies the object if its entity tag (ETag) is different than the
|
643
905
|
# specified ETag.
|
906
|
+
#
|
907
|
+
# If both the `x-amz-copy-source-if-none-match` and
|
908
|
+
# `x-amz-copy-source-if-modified-since` headers are present in the
|
909
|
+
# request and evaluate as follows, Amazon S3 returns the `412
|
910
|
+
# Precondition Failed` response code:
|
911
|
+
#
|
912
|
+
# * `x-amz-copy-source-if-none-match` condition evaluates to false
|
913
|
+
#
|
914
|
+
# * `x-amz-copy-source-if-modified-since` condition evaluates to true
|
644
915
|
# @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
|
645
916
|
# Copies the object if it hasn't been modified since the specified
|
646
917
|
# time.
|
918
|
+
#
|
919
|
+
# If both the `x-amz-copy-source-if-match` and
|
920
|
+
# `x-amz-copy-source-if-unmodified-since` headers are present in the
|
921
|
+
# request and evaluate as follows, Amazon S3 returns `200 OK` and copies
|
922
|
+
# the data:
|
923
|
+
#
|
924
|
+
# * `x-amz-copy-source-if-match` condition evaluates to true
|
925
|
+
#
|
926
|
+
# * `x-amz-copy-source-if-unmodified-since` condition evaluates to false
|
647
927
|
# @option options [Time,DateTime,Date,Integer,String] :expires
|
648
928
|
# The date and time at which the object is no longer cacheable.
|
649
929
|
# @option options [String] :grant_full_control
|
650
930
|
# Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
|
651
931
|
# object.
|
652
932
|
#
|
653
|
-
# This
|
933
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
934
|
+
#
|
935
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
936
|
+
#
|
937
|
+
# </note>
|
654
938
|
# @option options [String] :grant_read
|
655
939
|
# Allows grantee to read the object data and its metadata.
|
656
940
|
#
|
657
|
-
# This
|
941
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
942
|
+
#
|
943
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
944
|
+
#
|
945
|
+
# </note>
|
658
946
|
# @option options [String] :grant_read_acp
|
659
947
|
# Allows grantee to read the object ACL.
|
660
948
|
#
|
661
|
-
# This
|
949
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
950
|
+
#
|
951
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
952
|
+
#
|
953
|
+
# </note>
|
662
954
|
# @option options [String] :grant_write_acp
|
663
955
|
# Allows grantee to write the ACL for the applicable object.
|
664
956
|
#
|
665
|
-
# This
|
957
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
958
|
+
#
|
959
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
960
|
+
#
|
961
|
+
# </note>
|
666
962
|
# @option options [Hash<String,String>] :metadata
|
667
963
|
# A map of metadata to store with the object in S3.
|
668
964
|
# @option options [String] :metadata_directive
|
669
965
|
# Specifies whether the metadata is copied from the source object or
|
670
|
-
# replaced with metadata provided in the request.
|
966
|
+
# replaced with metadata that's provided in the request. When copying
|
967
|
+
# an object, you can preserve all metadata (the default) or specify new
|
968
|
+
# metadata. If this header isn’t specified, `COPY` is the default
|
969
|
+
# behavior.
|
970
|
+
#
|
971
|
+
# **General purpose bucket** - For general purpose buckets, when you
|
972
|
+
# grant permissions, you can use the `s3:x-amz-metadata-directive`
|
973
|
+
# condition key to enforce certain metadata behavior when objects are
|
974
|
+
# uploaded. For more information, see [Amazon S3 condition key
|
975
|
+
# examples][1] in the *Amazon S3 User Guide*.
|
976
|
+
#
|
977
|
+
# <note markdown="1"> `x-amz-website-redirect-location` is unique to each object and is not
|
978
|
+
# copied when using the `x-amz-metadata-directive` header. To copy the
|
979
|
+
# value, you must specify `x-amz-website-redirect-location` in the
|
980
|
+
# request header.
|
981
|
+
#
|
982
|
+
# </note>
|
983
|
+
#
|
984
|
+
#
|
985
|
+
#
|
986
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html
|
671
987
|
# @option options [String] :tagging_directive
|
672
|
-
# Specifies whether the object tag-set
|
673
|
-
# or replaced with tag-set provided in the request.
|
988
|
+
# Specifies whether the object tag-set is copied from the source object
|
989
|
+
# or replaced with the tag-set that's provided in the request.
|
990
|
+
#
|
991
|
+
# The default value is `COPY`.
|
992
|
+
#
|
993
|
+
# <note markdown="1"> **Directory buckets** - For directory buckets in a `CopyObject`
|
994
|
+
# operation, only the empty tag-set is supported. Any requests that
|
995
|
+
# attempt to write non-empty tags into directory buckets will receive a
|
996
|
+
# `501 Not Implemented` status code. When the destination bucket is a
|
997
|
+
# directory bucket, you will receive a `501 Not Implemented` response in
|
998
|
+
# any of the following situations:
|
999
|
+
#
|
1000
|
+
# * When you attempt to `COPY` the tag-set from an S3 source object that
|
1001
|
+
# has non-empty tags.
|
1002
|
+
#
|
1003
|
+
# * When you attempt to `REPLACE` the tag-set of a source object and set
|
1004
|
+
# a non-empty value to `x-amz-tagging`.
|
1005
|
+
#
|
1006
|
+
# * When you don't set the `x-amz-tagging-directive` header and the
|
1007
|
+
# source object has non-empty tags. This is because the default value
|
1008
|
+
# of `x-amz-tagging-directive` is `COPY`.
|
1009
|
+
#
|
1010
|
+
# Because only the empty tag-set is supported for directory buckets in a
|
1011
|
+
# `CopyObject` operation, the following situations are allowed:
|
1012
|
+
#
|
1013
|
+
# * When you attempt to `COPY` the tag-set from a directory bucket
|
1014
|
+
# source object that has no tags to a general purpose bucket. It
|
1015
|
+
# copies an empty tag-set to the destination object.
|
1016
|
+
#
|
1017
|
+
# * When you attempt to `REPLACE` the tag-set of a directory bucket
|
1018
|
+
# source object and set the `x-amz-tagging` value of the directory
|
1019
|
+
# bucket destination object to empty.
|
1020
|
+
#
|
1021
|
+
# * When you attempt to `REPLACE` the tag-set of a general purpose
|
1022
|
+
# bucket source object that has non-empty tags and set the
|
1023
|
+
# `x-amz-tagging` value of the directory bucket destination object to
|
1024
|
+
# empty.
|
1025
|
+
#
|
1026
|
+
# * When you attempt to `REPLACE` the tag-set of a directory bucket
|
1027
|
+
# source object and don't set the `x-amz-tagging` value of the
|
1028
|
+
# directory bucket destination object. This is because the default
|
1029
|
+
# value of `x-amz-tagging` is the empty value.
|
1030
|
+
#
|
1031
|
+
# </note>
|
674
1032
|
# @option options [String] :server_side_encryption
|
675
1033
|
# The server-side encryption algorithm used when storing this object in
|
676
|
-
# Amazon S3 (for example, AES256
|
1034
|
+
# Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
|
1035
|
+
# Unrecognized or unsupported values won’t write a destination object
|
1036
|
+
# and will receive a `400 Bad Request` response.
|
1037
|
+
#
|
1038
|
+
# Amazon S3 automatically encrypts all new objects that are copied to an
|
1039
|
+
# S3 bucket. When copying an object, if you don't specify encryption
|
1040
|
+
# information in your copy request, the encryption setting of the target
|
1041
|
+
# object is set to the default encryption configuration of the
|
1042
|
+
# destination bucket. By default, all buckets have a base level of
|
1043
|
+
# encryption configuration that uses server-side encryption with Amazon
|
1044
|
+
# S3 managed keys (SSE-S3). If the destination bucket has a default
|
1045
|
+
# encryption configuration that uses server-side encryption with Key
|
1046
|
+
# Management Service (KMS) keys (SSE-KMS), dual-layer server-side
|
1047
|
+
# encryption with Amazon Web Services KMS keys (DSSE-KMS), or
|
1048
|
+
# server-side encryption with customer-provided encryption keys (SSE-C),
|
1049
|
+
# Amazon S3 uses the corresponding KMS key, or a customer-provided key
|
1050
|
+
# to encrypt the target object copy.
|
1051
|
+
#
|
1052
|
+
# When you perform a `CopyObject` operation, if you want to use a
|
1053
|
+
# different type of encryption setting for the target object, you can
|
1054
|
+
# specify appropriate encryption-related headers to encrypt the target
|
1055
|
+
# object with an Amazon S3 managed key, a KMS key, or a
|
1056
|
+
# customer-provided key. If the encryption setting in your request is
|
1057
|
+
# different from the default encryption configuration of the destination
|
1058
|
+
# bucket, the encryption setting in your request takes precedence.
|
1059
|
+
#
|
1060
|
+
# With server-side encryption, Amazon S3 encrypts your data as it writes
|
1061
|
+
# your data to disks in its data centers and decrypts the data when you
|
1062
|
+
# access it. For more information about server-side encryption, see
|
1063
|
+
# [Using Server-Side Encryption][1] in the *Amazon S3 User Guide*.
|
1064
|
+
#
|
1065
|
+
# <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
|
1066
|
+
# managed keys (SSE-S3) (`AES256`) is supported.
|
1067
|
+
#
|
1068
|
+
# </note>
|
1069
|
+
#
|
1070
|
+
#
|
1071
|
+
#
|
1072
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
|
677
1073
|
# @option options [String] :storage_class
|
678
|
-
#
|
679
|
-
#
|
680
|
-
#
|
681
|
-
#
|
682
|
-
#
|
1074
|
+
# If the `x-amz-storage-class` header is not used, the copied object
|
1075
|
+
# will be stored in the `STANDARD` Storage Class by default. The
|
1076
|
+
# `STANDARD` storage class provides high durability and high
|
1077
|
+
# availability. Depending on performance needs, you can specify a
|
1078
|
+
# different Storage Class.
|
1079
|
+
#
|
1080
|
+
# <note markdown="1"> * <b>Directory buckets </b> - For directory buckets, only the S3
|
1081
|
+
# Express One Zone storage class is supported to store newly created
|
1082
|
+
# objects. Unsupported storage class values won't write a destination
|
1083
|
+
# object and will respond with the HTTP status code `400 Bad Request`.
|
1084
|
+
#
|
1085
|
+
# * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
|
1086
|
+
# `OUTPOSTS` Storage Class.
|
1087
|
+
#
|
1088
|
+
# </note>
|
1089
|
+
#
|
1090
|
+
# You can use the `CopyObject` action to change the storage class of an
|
1091
|
+
# object that is already stored in Amazon S3 by using the
|
1092
|
+
# `x-amz-storage-class` header. For more information, see [Storage
|
1093
|
+
# Classes][1] in the *Amazon S3 User Guide*.
|
1094
|
+
#
|
1095
|
+
# Before using an object as a source object for the copy operation, you
|
1096
|
+
# must restore a copy of it if it meets any of the following conditions:
|
1097
|
+
#
|
1098
|
+
# * The storage class of the source object is `GLACIER` or
|
1099
|
+
# `DEEP_ARCHIVE`.
|
1100
|
+
#
|
1101
|
+
# * The storage class of the source object is `INTELLIGENT_TIERING` and
|
1102
|
+
# it's [S3 Intelligent-Tiering access tier][2] is `Archive Access` or
|
1103
|
+
# `Deep Archive Access`.
|
1104
|
+
#
|
1105
|
+
# For more information, see [RestoreObject][3] and [Copying Objects][4]
|
683
1106
|
# in the *Amazon S3 User Guide*.
|
684
1107
|
#
|
685
1108
|
#
|
686
1109
|
#
|
687
1110
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
|
1111
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intelligent-tiering-overview.html#intel-tiering-tier-definition
|
1112
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
|
1113
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html
|
688
1114
|
# @option options [String] :website_redirect_location
|
689
|
-
# If the bucket is configured as a website, redirects
|
690
|
-
# object to another object in the same bucket or
|
691
|
-
# Amazon S3 stores the value of this header in the
|
1115
|
+
# If the destination bucket is configured as a website, redirects
|
1116
|
+
# requests for this object copy to another object in the same bucket or
|
1117
|
+
# to an external URL. Amazon S3 stores the value of this header in the
|
1118
|
+
# object metadata. This value is unique to each object and is not copied
|
1119
|
+
# when using the `x-amz-metadata-directive` header. Instead, you may opt
|
1120
|
+
# to provide this header in combination with the
|
1121
|
+
# `x-amz-metadata-directive` header.
|
1122
|
+
#
|
1123
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1124
|
+
#
|
1125
|
+
# </note>
|
692
1126
|
# @option options [String] :sse_customer_algorithm
|
693
|
-
# Specifies the algorithm to use
|
694
|
-
# example, AES256).
|
1127
|
+
# Specifies the algorithm to use when encrypting the object (for
|
1128
|
+
# example, `AES256`).
|
1129
|
+
#
|
1130
|
+
# When you perform a `CopyObject` operation, if you want to use a
|
1131
|
+
# different type of encryption setting for the target object, you can
|
1132
|
+
# specify appropriate encryption-related headers to encrypt the target
|
1133
|
+
# object with an Amazon S3 managed key, a KMS key, or a
|
1134
|
+
# customer-provided key. If the encryption setting in your request is
|
1135
|
+
# different from the default encryption configuration of the destination
|
1136
|
+
# bucket, the encryption setting in your request takes precedence.
|
1137
|
+
#
|
1138
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1139
|
+
# directory bucket.
|
1140
|
+
#
|
1141
|
+
# </note>
|
695
1142
|
# @option options [String] :sse_customer_key
|
696
1143
|
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
697
1144
|
# encrypting data. This value is used to store the object and then it is
|
698
|
-
# discarded
|
1145
|
+
# discarded. Amazon S3 does not store the encryption key. The key must
|
699
1146
|
# be appropriate for use with the algorithm specified in the
|
700
1147
|
# `x-amz-server-side-encryption-customer-algorithm` header.
|
1148
|
+
#
|
1149
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1150
|
+
# directory bucket.
|
1151
|
+
#
|
1152
|
+
# </note>
|
701
1153
|
# @option options [String] :sse_customer_key_md5
|
702
1154
|
# Specifies the 128-bit MD5 digest of the encryption key according to
|
703
1155
|
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
704
1156
|
# ensure that the encryption key was transmitted without error.
|
1157
|
+
#
|
1158
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1159
|
+
# directory bucket.
|
1160
|
+
#
|
1161
|
+
# </note>
|
705
1162
|
# @option options [String] :ssekms_key_id
|
706
|
-
# Specifies the
|
707
|
-
# encryption. All GET and PUT requests for an object protected by
|
708
|
-
#
|
709
|
-
#
|
710
|
-
#
|
711
|
-
#
|
712
|
-
#
|
1163
|
+
# Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object
|
1164
|
+
# encryption. All GET and PUT requests for an object protected by KMS
|
1165
|
+
# will fail if they're not made via SSL or using SigV4. For information
|
1166
|
+
# about configuring any of the officially supported Amazon Web Services
|
1167
|
+
# SDKs and Amazon Web Services CLI, see [Specifying the Signature
|
1168
|
+
# Version in Request Authentication][1] in the *Amazon S3 User Guide*.
|
1169
|
+
#
|
1170
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1171
|
+
# directory bucket.
|
1172
|
+
#
|
1173
|
+
# </note>
|
713
1174
|
#
|
714
1175
|
#
|
715
1176
|
#
|
@@ -717,62 +1178,177 @@ module Aws::S3
|
|
717
1178
|
# @option options [String] :ssekms_encryption_context
|
718
1179
|
# Specifies the Amazon Web Services KMS Encryption Context to use for
|
719
1180
|
# object encryption. The value of this header is a base64-encoded UTF-8
|
720
|
-
# string holding JSON with the encryption context key-value pairs.
|
1181
|
+
# string holding JSON with the encryption context key-value pairs. This
|
1182
|
+
# value must be explicitly added to specify encryption context for
|
1183
|
+
# `CopyObject` requests.
|
1184
|
+
#
|
1185
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1186
|
+
# directory bucket.
|
1187
|
+
#
|
1188
|
+
# </note>
|
721
1189
|
# @option options [Boolean] :bucket_key_enabled
|
722
1190
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
723
|
-
# encryption with server-side encryption using
|
1191
|
+
# encryption with server-side encryption using Key Management Service
|
1192
|
+
# (KMS) keys (SSE-KMS). If a target object uses SSE-KMS, you can enable
|
1193
|
+
# an S3 Bucket Key for the object.
|
1194
|
+
#
|
724
1195
|
# Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
|
725
|
-
# for object encryption with SSE-KMS.
|
1196
|
+
# for object encryption with SSE-KMS. Specifying this header with a COPY
|
1197
|
+
# action doesn’t affect bucket-level settings for S3 Bucket Key.
|
726
1198
|
#
|
727
|
-
#
|
728
|
-
#
|
1199
|
+
# For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon S3
|
1200
|
+
# User Guide*.
|
1201
|
+
#
|
1202
|
+
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1203
|
+
# directory bucket.
|
1204
|
+
#
|
1205
|
+
# </note>
|
1206
|
+
#
|
1207
|
+
#
|
1208
|
+
#
|
1209
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
|
729
1210
|
# @option options [String] :copy_source_sse_customer_algorithm
|
730
1211
|
# Specifies the algorithm to use when decrypting the source object (for
|
731
|
-
# example, AES256).
|
1212
|
+
# example, `AES256`).
|
1213
|
+
#
|
1214
|
+
# If the source object for the copy is stored in Amazon S3 using SSE-C,
|
1215
|
+
# you must provide the necessary encryption information in your request
|
1216
|
+
# so that Amazon S3 can decrypt the object for copying.
|
1217
|
+
#
|
1218
|
+
# <note markdown="1"> This functionality is not supported when the source object is in a
|
1219
|
+
# directory bucket.
|
1220
|
+
#
|
1221
|
+
# </note>
|
732
1222
|
# @option options [String] :copy_source_sse_customer_key
|
733
1223
|
# Specifies the customer-provided encryption key for Amazon S3 to use to
|
734
1224
|
# decrypt the source object. The encryption key provided in this header
|
735
|
-
# must be one that was used when the source object was created.
|
1225
|
+
# must be the same one that was used when the source object was created.
|
1226
|
+
#
|
1227
|
+
# If the source object for the copy is stored in Amazon S3 using SSE-C,
|
1228
|
+
# you must provide the necessary encryption information in your request
|
1229
|
+
# so that Amazon S3 can decrypt the object for copying.
|
1230
|
+
#
|
1231
|
+
# <note markdown="1"> This functionality is not supported when the source object is in a
|
1232
|
+
# directory bucket.
|
1233
|
+
#
|
1234
|
+
# </note>
|
736
1235
|
# @option options [String] :copy_source_sse_customer_key_md5
|
737
1236
|
# Specifies the 128-bit MD5 digest of the encryption key according to
|
738
1237
|
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
739
1238
|
# ensure that the encryption key was transmitted without error.
|
1239
|
+
#
|
1240
|
+
# If the source object for the copy is stored in Amazon S3 using SSE-C,
|
1241
|
+
# you must provide the necessary encryption information in your request
|
1242
|
+
# so that Amazon S3 can decrypt the object for copying.
|
1243
|
+
#
|
1244
|
+
# <note markdown="1"> This functionality is not supported when the source object is in a
|
1245
|
+
# directory bucket.
|
1246
|
+
#
|
1247
|
+
# </note>
|
740
1248
|
# @option options [String] :request_payer
|
741
1249
|
# Confirms that the requester knows that they will be charged for the
|
742
1250
|
# request. Bucket owners need not specify this parameter in their
|
743
|
-
# requests.
|
744
|
-
#
|
1251
|
+
# requests. If either the source or destination S3 bucket has Requester
|
1252
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
1253
|
+
# the object. For information about downloading objects from Requester
|
1254
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
745
1255
|
# in the *Amazon S3 User Guide*.
|
746
1256
|
#
|
1257
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1258
|
+
#
|
1259
|
+
# </note>
|
1260
|
+
#
|
747
1261
|
#
|
748
1262
|
#
|
749
1263
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
750
1264
|
# @option options [String] :tagging
|
751
|
-
# The tag-set for the object
|
752
|
-
# in conjunction with the `
|
753
|
-
#
|
1265
|
+
# The tag-set for the object copy in the destination bucket. This value
|
1266
|
+
# must be used in conjunction with the `x-amz-tagging-directive` if you
|
1267
|
+
# choose `REPLACE` for the `x-amz-tagging-directive`. If you choose
|
1268
|
+
# `COPY` for the `x-amz-tagging-directive`, you don't need to set the
|
1269
|
+
# `x-amz-tagging` header, because the tag-set will be copied from the
|
1270
|
+
# source object directly. The tag-set must be encoded as URL Query
|
1271
|
+
# parameters.
|
1272
|
+
#
|
1273
|
+
# The default value is the empty value.
|
1274
|
+
#
|
1275
|
+
# <note markdown="1"> **Directory buckets** - For directory buckets in a `CopyObject`
|
1276
|
+
# operation, only the empty tag-set is supported. Any requests that
|
1277
|
+
# attempt to write non-empty tags into directory buckets will receive a
|
1278
|
+
# `501 Not Implemented` status code. When the destination bucket is a
|
1279
|
+
# directory bucket, you will receive a `501 Not Implemented` response in
|
1280
|
+
# any of the following situations:
|
1281
|
+
#
|
1282
|
+
# * When you attempt to `COPY` the tag-set from an S3 source object that
|
1283
|
+
# has non-empty tags.
|
1284
|
+
#
|
1285
|
+
# * When you attempt to `REPLACE` the tag-set of a source object and set
|
1286
|
+
# a non-empty value to `x-amz-tagging`.
|
1287
|
+
#
|
1288
|
+
# * When you don't set the `x-amz-tagging-directive` header and the
|
1289
|
+
# source object has non-empty tags. This is because the default value
|
1290
|
+
# of `x-amz-tagging-directive` is `COPY`.
|
1291
|
+
#
|
1292
|
+
# Because only the empty tag-set is supported for directory buckets in a
|
1293
|
+
# `CopyObject` operation, the following situations are allowed:
|
1294
|
+
#
|
1295
|
+
# * When you attempt to `COPY` the tag-set from a directory bucket
|
1296
|
+
# source object that has no tags to a general purpose bucket. It
|
1297
|
+
# copies an empty tag-set to the destination object.
|
1298
|
+
#
|
1299
|
+
# * When you attempt to `REPLACE` the tag-set of a directory bucket
|
1300
|
+
# source object and set the `x-amz-tagging` value of the directory
|
1301
|
+
# bucket destination object to empty.
|
1302
|
+
#
|
1303
|
+
# * When you attempt to `REPLACE` the tag-set of a general purpose
|
1304
|
+
# bucket source object that has non-empty tags and set the
|
1305
|
+
# `x-amz-tagging` value of the directory bucket destination object to
|
1306
|
+
# empty.
|
1307
|
+
#
|
1308
|
+
# * When you attempt to `REPLACE` the tag-set of a directory bucket
|
1309
|
+
# source object and don't set the `x-amz-tagging` value of the
|
1310
|
+
# directory bucket destination object. This is because the default
|
1311
|
+
# value of `x-amz-tagging` is the empty value.
|
1312
|
+
#
|
1313
|
+
# </note>
|
754
1314
|
# @option options [String] :object_lock_mode
|
755
|
-
# The Object Lock mode that you want to apply to the
|
1315
|
+
# The Object Lock mode that you want to apply to the object copy.
|
1316
|
+
#
|
1317
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1318
|
+
#
|
1319
|
+
# </note>
|
756
1320
|
# @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
|
757
|
-
# The date and time when you want the
|
1321
|
+
# The date and time when you want the Object Lock of the object copy to
|
758
1322
|
# expire.
|
1323
|
+
#
|
1324
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1325
|
+
#
|
1326
|
+
# </note>
|
759
1327
|
# @option options [String] :object_lock_legal_hold_status
|
760
|
-
# Specifies whether you want to apply a
|
1328
|
+
# Specifies whether you want to apply a legal hold to the object copy.
|
1329
|
+
#
|
1330
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1331
|
+
#
|
1332
|
+
# </note>
|
761
1333
|
# @option options [String] :expected_bucket_owner
|
762
1334
|
# The account ID of the expected destination bucket owner. If the
|
763
|
-
#
|
764
|
-
#
|
1335
|
+
# account ID that you provide does not match the actual owner of the
|
1336
|
+
# destination bucket, the request fails with the HTTP status code `403
|
1337
|
+
# Forbidden` (access denied).
|
765
1338
|
# @option options [String] :expected_source_bucket_owner
|
766
|
-
# The account ID of the expected source bucket owner. If the
|
767
|
-
#
|
768
|
-
# HTTP `403
|
1339
|
+
# The account ID of the expected source bucket owner. If the account ID
|
1340
|
+
# that you provide does not match the actual owner of the source bucket,
|
1341
|
+
# the request fails with the HTTP status code `403 Forbidden` (access
|
1342
|
+
# denied).
|
769
1343
|
# @return [Types::CopyObjectOutput]
|
770
1344
|
def copy_from(options = {})
|
771
1345
|
options = options.merge(
|
772
1346
|
bucket: @bucket_name,
|
773
1347
|
key: @key
|
774
1348
|
)
|
775
|
-
resp =
|
1349
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
1350
|
+
@client.copy_object(options)
|
1351
|
+
end
|
776
1352
|
resp.data
|
777
1353
|
end
|
778
1354
|
|
@@ -791,33 +1367,54 @@ module Aws::S3
|
|
791
1367
|
# space, and the value that is displayed on your authentication device.
|
792
1368
|
# Required to permanently delete a versioned object if versioning is
|
793
1369
|
# configured with MFA delete enabled.
|
1370
|
+
#
|
1371
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1372
|
+
#
|
1373
|
+
# </note>
|
794
1374
|
# @option options [String] :version_id
|
795
|
-
#
|
1375
|
+
# Version ID used to reference a specific version of the object.
|
1376
|
+
#
|
1377
|
+
# <note markdown="1"> For directory buckets in this API operation, only the `null` value of
|
1378
|
+
# the version ID is supported.
|
1379
|
+
#
|
1380
|
+
# </note>
|
796
1381
|
# @option options [String] :request_payer
|
797
1382
|
# Confirms that the requester knows that they will be charged for the
|
798
1383
|
# request. Bucket owners need not specify this parameter in their
|
799
|
-
# requests.
|
800
|
-
#
|
1384
|
+
# requests. If either the source or destination S3 bucket has Requester
|
1385
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
1386
|
+
# the object. For information about downloading objects from Requester
|
1387
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
801
1388
|
# in the *Amazon S3 User Guide*.
|
802
1389
|
#
|
1390
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1391
|
+
#
|
1392
|
+
# </note>
|
1393
|
+
#
|
803
1394
|
#
|
804
1395
|
#
|
805
1396
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
806
1397
|
# @option options [Boolean] :bypass_governance_retention
|
807
1398
|
# Indicates whether S3 Object Lock should bypass Governance-mode
|
808
1399
|
# restrictions to process this operation. To use this header, you must
|
809
|
-
# have the `s3:
|
1400
|
+
# have the `s3:BypassGovernanceRetention` permission.
|
1401
|
+
#
|
1402
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1403
|
+
#
|
1404
|
+
# </note>
|
810
1405
|
# @option options [String] :expected_bucket_owner
|
811
|
-
# The account ID of the expected bucket owner. If the
|
812
|
-
#
|
813
|
-
#
|
1406
|
+
# The account ID of the expected bucket owner. If the account ID that
|
1407
|
+
# you provide does not match the actual owner of the bucket, the request
|
1408
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
814
1409
|
# @return [Types::DeleteObjectOutput]
|
815
1410
|
def delete(options = {})
|
816
1411
|
options = options.merge(
|
817
1412
|
bucket: @bucket_name,
|
818
1413
|
key: @key
|
819
1414
|
)
|
820
|
-
resp =
|
1415
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
1416
|
+
@client.delete_object(options)
|
1417
|
+
end
|
821
1418
|
resp.data
|
822
1419
|
end
|
823
1420
|
|
@@ -842,37 +1439,84 @@ module Aws::S3
|
|
842
1439
|
# request_payer: "requester", # accepts requester
|
843
1440
|
# part_number: 1,
|
844
1441
|
# expected_bucket_owner: "AccountId",
|
1442
|
+
# checksum_mode: "ENABLED", # accepts ENABLED
|
845
1443
|
# })
|
846
1444
|
# @param [Hash] options ({})
|
847
1445
|
# @option options [String] :if_match
|
848
1446
|
# Return the object only if its entity tag (ETag) is the same as the one
|
849
|
-
# specified
|
1447
|
+
# specified in this header; otherwise, return a `412 Precondition
|
1448
|
+
# Failed` error.
|
1449
|
+
#
|
1450
|
+
# If both of the `If-Match` and `If-Unmodified-Since` headers are
|
1451
|
+
# present in the request as follows: `If-Match` condition evaluates to
|
1452
|
+
# `true`, and; `If-Unmodified-Since` condition evaluates to `false`;
|
1453
|
+
# then, S3 returns `200 OK` and the data requested.
|
1454
|
+
#
|
1455
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
1456
|
+
#
|
1457
|
+
#
|
1458
|
+
#
|
1459
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
850
1460
|
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
851
1461
|
# Return the object only if it has been modified since the specified
|
852
|
-
# time
|
853
|
-
# @option options [String] :if_none_match
|
854
|
-
# Return the object only if its entity tag (ETag) is different from the
|
855
|
-
# one specified, otherwise return a 304 (not modified).
|
856
|
-
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
857
|
-
# Return the object only if it has not been modified since the specified
|
858
|
-
# time, otherwise return a 412 (precondition failed).
|
859
|
-
# @option options [String] :range
|
860
|
-
# Downloads the specified range bytes of an object. For more information
|
861
|
-
# about the HTTP Range header, see
|
862
|
-
# [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
|
1462
|
+
# time; otherwise, return a `304 Not Modified` error.
|
863
1463
|
#
|
864
|
-
#
|
865
|
-
# `
|
1464
|
+
# If both of the `If-None-Match` and `If-Modified-Since` headers are
|
1465
|
+
# present in the request as follows:` If-None-Match` condition evaluates
|
1466
|
+
# to `false`, and; `If-Modified-Since` condition evaluates to `true`;
|
1467
|
+
# then, S3 returns `304 Not Modified` status code.
|
866
1468
|
#
|
867
|
-
#
|
1469
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
868
1470
|
#
|
869
1471
|
#
|
870
1472
|
#
|
871
|
-
# [1]: https://
|
872
|
-
# @option options [String] :
|
1473
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1474
|
+
# @option options [String] :if_none_match
|
1475
|
+
# Return the object only if its entity tag (ETag) is different from the
|
1476
|
+
# one specified in this header; otherwise, return a `304 Not Modified`
|
1477
|
+
# error.
|
1478
|
+
#
|
1479
|
+
# If both of the `If-None-Match` and `If-Modified-Since` headers are
|
1480
|
+
# present in the request as follows:` If-None-Match` condition evaluates
|
1481
|
+
# to `false`, and; `If-Modified-Since` condition evaluates to `true`;
|
1482
|
+
# then, S3 returns `304 Not Modified` HTTP status code.
|
1483
|
+
#
|
1484
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
1485
|
+
#
|
1486
|
+
#
|
1487
|
+
#
|
1488
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1489
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
1490
|
+
# Return the object only if it has not been modified since the specified
|
1491
|
+
# time; otherwise, return a `412 Precondition Failed` error.
|
1492
|
+
#
|
1493
|
+
# If both of the `If-Match` and `If-Unmodified-Since` headers are
|
1494
|
+
# present in the request as follows: `If-Match` condition evaluates to
|
1495
|
+
# `true`, and; `If-Unmodified-Since` condition evaluates to `false`;
|
1496
|
+
# then, S3 returns `200 OK` and the data requested.
|
1497
|
+
#
|
1498
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
1499
|
+
#
|
1500
|
+
#
|
1501
|
+
#
|
1502
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1503
|
+
# @option options [String] :range
|
1504
|
+
# Downloads the specified byte range of an object. For more information
|
1505
|
+
# about the HTTP Range header, see
|
1506
|
+
# [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
|
1507
|
+
#
|
1508
|
+
# <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
|
1509
|
+
# `GET` request.
|
1510
|
+
#
|
1511
|
+
# </note>
|
1512
|
+
#
|
1513
|
+
#
|
1514
|
+
#
|
1515
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
|
1516
|
+
# @option options [String] :response_cache_control
|
873
1517
|
# Sets the `Cache-Control` header of the response.
|
874
1518
|
# @option options [String] :response_content_disposition
|
875
|
-
# Sets the `Content-Disposition` header of the response
|
1519
|
+
# Sets the `Content-Disposition` header of the response.
|
876
1520
|
# @option options [String] :response_content_encoding
|
877
1521
|
# Sets the `Content-Encoding` header of the response.
|
878
1522
|
# @option options [String] :response_content_language
|
@@ -882,27 +1526,128 @@ module Aws::S3
|
|
882
1526
|
# @option options [Time,DateTime,Date,Integer,String] :response_expires
|
883
1527
|
# Sets the `Expires` header of the response.
|
884
1528
|
# @option options [String] :version_id
|
885
|
-
#
|
1529
|
+
# Version ID used to reference a specific version of the object.
|
1530
|
+
#
|
1531
|
+
# By default, the `GetObject` operation returns the current version of
|
1532
|
+
# an object. To return a different version, use the `versionId`
|
1533
|
+
# subresource.
|
1534
|
+
#
|
1535
|
+
# <note markdown="1"> * If you include a `versionId` in your request header, you must have
|
1536
|
+
# the `s3:GetObjectVersion` permission to access a specific version of
|
1537
|
+
# an object. The `s3:GetObject` permission is not required in this
|
1538
|
+
# scenario.
|
1539
|
+
#
|
1540
|
+
# * If you request the current version of an object without a specific
|
1541
|
+
# `versionId` in the request header, only the `s3:GetObject`
|
1542
|
+
# permission is required. The `s3:GetObjectVersion` permission is not
|
1543
|
+
# required in this scenario.
|
1544
|
+
#
|
1545
|
+
# * **Directory buckets** - S3 Versioning isn't enabled and supported
|
1546
|
+
# for directory buckets. For this API operation, only the `null` value
|
1547
|
+
# of the version ID is supported by directory buckets. You can only
|
1548
|
+
# specify `null` to the `versionId` query parameter in the request.
|
1549
|
+
#
|
1550
|
+
# </note>
|
1551
|
+
#
|
1552
|
+
# For more information about versioning, see [PutBucketVersioning][1].
|
1553
|
+
#
|
1554
|
+
#
|
1555
|
+
#
|
1556
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketVersioning.html
|
886
1557
|
# @option options [String] :sse_customer_algorithm
|
887
|
-
# Specifies the algorithm to use
|
888
|
-
# example, AES256).
|
1558
|
+
# Specifies the algorithm to use when decrypting the object (for
|
1559
|
+
# example, `AES256`).
|
1560
|
+
#
|
1561
|
+
# If you encrypt an object by using server-side encryption with
|
1562
|
+
# customer-provided encryption keys (SSE-C) when you store the object in
|
1563
|
+
# Amazon S3, then when you GET the object, you must use the following
|
1564
|
+
# headers:
|
1565
|
+
#
|
1566
|
+
# * `x-amz-server-side-encryption-customer-algorithm`
|
1567
|
+
#
|
1568
|
+
# * `x-amz-server-side-encryption-customer-key`
|
1569
|
+
#
|
1570
|
+
# * `x-amz-server-side-encryption-customer-key-MD5`
|
1571
|
+
#
|
1572
|
+
# For more information about SSE-C, see [Server-Side Encryption (Using
|
1573
|
+
# Customer-Provided Encryption Keys)][1] in the *Amazon S3 User Guide*.
|
1574
|
+
#
|
1575
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1576
|
+
#
|
1577
|
+
# </note>
|
1578
|
+
#
|
1579
|
+
#
|
1580
|
+
#
|
1581
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
889
1582
|
# @option options [String] :sse_customer_key
|
890
|
-
# Specifies the customer-provided encryption key
|
891
|
-
#
|
892
|
-
#
|
893
|
-
#
|
1583
|
+
# Specifies the customer-provided encryption key that you originally
|
1584
|
+
# provided for Amazon S3 to encrypt the data before storing it. This
|
1585
|
+
# value is used to decrypt the object when recovering it and must match
|
1586
|
+
# the one used when storing the data. The key must be appropriate for
|
1587
|
+
# use with the algorithm specified in the
|
894
1588
|
# `x-amz-server-side-encryption-customer-algorithm` header.
|
1589
|
+
#
|
1590
|
+
# If you encrypt an object by using server-side encryption with
|
1591
|
+
# customer-provided encryption keys (SSE-C) when you store the object in
|
1592
|
+
# Amazon S3, then when you GET the object, you must use the following
|
1593
|
+
# headers:
|
1594
|
+
#
|
1595
|
+
# * `x-amz-server-side-encryption-customer-algorithm`
|
1596
|
+
#
|
1597
|
+
# * `x-amz-server-side-encryption-customer-key`
|
1598
|
+
#
|
1599
|
+
# * `x-amz-server-side-encryption-customer-key-MD5`
|
1600
|
+
#
|
1601
|
+
# For more information about SSE-C, see [Server-Side Encryption (Using
|
1602
|
+
# Customer-Provided Encryption Keys)][1] in the *Amazon S3 User Guide*.
|
1603
|
+
#
|
1604
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1605
|
+
#
|
1606
|
+
# </note>
|
1607
|
+
#
|
1608
|
+
#
|
1609
|
+
#
|
1610
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
895
1611
|
# @option options [String] :sse_customer_key_md5
|
896
|
-
# Specifies the 128-bit MD5 digest of the encryption
|
897
|
-
# RFC 1321. Amazon S3 uses this header for a message
|
898
|
-
# ensure that the encryption key was transmitted
|
1612
|
+
# Specifies the 128-bit MD5 digest of the customer-provided encryption
|
1613
|
+
# key according to RFC 1321. Amazon S3 uses this header for a message
|
1614
|
+
# integrity check to ensure that the encryption key was transmitted
|
1615
|
+
# without error.
|
1616
|
+
#
|
1617
|
+
# If you encrypt an object by using server-side encryption with
|
1618
|
+
# customer-provided encryption keys (SSE-C) when you store the object in
|
1619
|
+
# Amazon S3, then when you GET the object, you must use the following
|
1620
|
+
# headers:
|
1621
|
+
#
|
1622
|
+
# * `x-amz-server-side-encryption-customer-algorithm`
|
1623
|
+
#
|
1624
|
+
# * `x-amz-server-side-encryption-customer-key`
|
1625
|
+
#
|
1626
|
+
# * `x-amz-server-side-encryption-customer-key-MD5`
|
1627
|
+
#
|
1628
|
+
# For more information about SSE-C, see [Server-Side Encryption (Using
|
1629
|
+
# Customer-Provided Encryption Keys)][1] in the *Amazon S3 User Guide*.
|
1630
|
+
#
|
1631
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1632
|
+
#
|
1633
|
+
# </note>
|
1634
|
+
#
|
1635
|
+
#
|
1636
|
+
#
|
1637
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
899
1638
|
# @option options [String] :request_payer
|
900
1639
|
# Confirms that the requester knows that they will be charged for the
|
901
1640
|
# request. Bucket owners need not specify this parameter in their
|
902
|
-
# requests.
|
903
|
-
#
|
1641
|
+
# requests. If either the source or destination S3 bucket has Requester
|
1642
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
1643
|
+
# the object. For information about downloading objects from Requester
|
1644
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
904
1645
|
# in the *Amazon S3 User Guide*.
|
905
1646
|
#
|
1647
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1648
|
+
#
|
1649
|
+
# </note>
|
1650
|
+
#
|
906
1651
|
#
|
907
1652
|
#
|
908
1653
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
@@ -912,16 +1657,20 @@ module Aws::S3
|
|
912
1657
|
# for the part specified. Useful for downloading just a part of an
|
913
1658
|
# object.
|
914
1659
|
# @option options [String] :expected_bucket_owner
|
915
|
-
# The account ID of the expected bucket owner. If the
|
916
|
-
#
|
917
|
-
#
|
1660
|
+
# The account ID of the expected bucket owner. If the account ID that
|
1661
|
+
# you provide does not match the actual owner of the bucket, the request
|
1662
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
1663
|
+
# @option options [String] :checksum_mode
|
1664
|
+
# To retrieve the checksum, this mode must be enabled.
|
918
1665
|
# @return [Types::GetObjectOutput]
|
919
1666
|
def get(options = {}, &block)
|
920
1667
|
options = options.merge(
|
921
1668
|
bucket: @bucket_name,
|
922
1669
|
key: @key
|
923
1670
|
)
|
924
|
-
resp =
|
1671
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
1672
|
+
@client.get_object(options, &block)
|
1673
|
+
end
|
925
1674
|
resp.data
|
926
1675
|
end
|
927
1676
|
|
@@ -942,8 +1691,8 @@ module Aws::S3
|
|
942
1691
|
# metadata: {
|
943
1692
|
# "MetadataKey" => "MetadataValue",
|
944
1693
|
# },
|
945
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms
|
946
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
|
1694
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
1695
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
947
1696
|
# website_redirect_location: "WebsiteRedirectLocation",
|
948
1697
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
949
1698
|
# sse_customer_key: "SSECustomerKey",
|
@@ -957,12 +1706,33 @@ module Aws::S3
|
|
957
1706
|
# object_lock_retain_until_date: Time.now,
|
958
1707
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
959
1708
|
# expected_bucket_owner: "AccountId",
|
1709
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
960
1710
|
# })
|
961
1711
|
# @param [Hash] options ({})
|
962
1712
|
# @option options [String] :acl
|
963
|
-
# The canned ACL to apply to the object.
|
1713
|
+
# The canned ACL to apply to the object. Amazon S3 supports a set of
|
1714
|
+
# predefined ACLs, known as *canned ACLs*. Each canned ACL has a
|
1715
|
+
# predefined set of grantees and permissions. For more information, see
|
1716
|
+
# [Canned ACL][1] in the *Amazon S3 User Guide*.
|
1717
|
+
#
|
1718
|
+
# By default, all objects are private. Only the owner has full access
|
1719
|
+
# control. When uploading an object, you can grant access permissions to
|
1720
|
+
# individual Amazon Web Services accounts or to predefined groups
|
1721
|
+
# defined by Amazon S3. These permissions are then added to the access
|
1722
|
+
# control list (ACL) on the new object. For more information, see [Using
|
1723
|
+
# ACLs][2]. One way to grant the permissions using the request headers
|
1724
|
+
# is to specify a canned ACL with the `x-amz-acl` request header.
|
1725
|
+
#
|
1726
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
1727
|
+
#
|
1728
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
1729
|
+
#
|
1730
|
+
# </note>
|
1731
|
+
#
|
1732
|
+
#
|
964
1733
|
#
|
965
|
-
#
|
1734
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
|
1735
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
|
966
1736
|
# @option options [String] :cache_control
|
967
1737
|
# Specifies caching behavior along the request/reply chain.
|
968
1738
|
# @option options [String] :content_disposition
|
@@ -971,41 +1741,292 @@ module Aws::S3
|
|
971
1741
|
# Specifies what content encodings have been applied to the object and
|
972
1742
|
# thus what decoding mechanisms must be applied to obtain the media-type
|
973
1743
|
# referenced by the Content-Type header field.
|
1744
|
+
#
|
1745
|
+
# <note markdown="1"> For directory buckets, only the `aws-chunked` value is supported in
|
1746
|
+
# this header field.
|
1747
|
+
#
|
1748
|
+
# </note>
|
974
1749
|
# @option options [String] :content_language
|
975
|
-
# The language the content is in.
|
1750
|
+
# The language that the content is in.
|
976
1751
|
# @option options [String] :content_type
|
977
1752
|
# A standard MIME type describing the format of the object data.
|
978
1753
|
# @option options [Time,DateTime,Date,Integer,String] :expires
|
979
1754
|
# The date and time at which the object is no longer cacheable.
|
980
1755
|
# @option options [String] :grant_full_control
|
981
|
-
#
|
982
|
-
# object.
|
1756
|
+
# Specify access permissions explicitly to give the grantee READ,
|
1757
|
+
# READ\_ACP, and WRITE\_ACP permissions on the object.
|
1758
|
+
#
|
1759
|
+
# By default, all objects are private. Only the owner has full access
|
1760
|
+
# control. When uploading an object, you can use this header to
|
1761
|
+
# explicitly grant access permissions to specific Amazon Web Services
|
1762
|
+
# accounts or groups. This header maps to specific permissions that
|
1763
|
+
# Amazon S3 supports in an ACL. For more information, see [Access
|
1764
|
+
# Control List (ACL) Overview][1] in the *Amazon S3 User Guide*.
|
1765
|
+
#
|
1766
|
+
# You specify each grantee as a type=value pair, where the type is one
|
1767
|
+
# of the following:
|
1768
|
+
#
|
1769
|
+
# * `id` – if the value specified is the canonical user ID of an Amazon
|
1770
|
+
# Web Services account
|
1771
|
+
#
|
1772
|
+
# * `uri` – if you are granting permissions to a predefined group
|
1773
|
+
#
|
1774
|
+
# * `emailAddress` – if the value specified is the email address of an
|
1775
|
+
# Amazon Web Services account
|
1776
|
+
#
|
1777
|
+
# <note markdown="1"> Using email addresses to specify a grantee is only supported in the
|
1778
|
+
# following Amazon Web Services Regions:
|
1779
|
+
#
|
1780
|
+
# * US East (N. Virginia)
|
1781
|
+
#
|
1782
|
+
# * US West (N. California)
|
1783
|
+
#
|
1784
|
+
# * US West (Oregon)
|
1785
|
+
#
|
1786
|
+
# * Asia Pacific (Singapore)
|
1787
|
+
#
|
1788
|
+
# * Asia Pacific (Sydney)
|
1789
|
+
#
|
1790
|
+
# * Asia Pacific (Tokyo)
|
1791
|
+
#
|
1792
|
+
# * Europe (Ireland)
|
1793
|
+
#
|
1794
|
+
# * South America (São Paulo)
|
1795
|
+
#
|
1796
|
+
# For a list of all the Amazon S3 supported Regions and endpoints, see
|
1797
|
+
# [Regions and Endpoints][2] in the Amazon Web Services General
|
1798
|
+
# Reference.
|
1799
|
+
#
|
1800
|
+
# </note>
|
1801
|
+
#
|
1802
|
+
# For example, the following `x-amz-grant-read` header grants the Amazon
|
1803
|
+
# Web Services accounts identified by account IDs permissions to read
|
1804
|
+
# object data and its metadata:
|
1805
|
+
#
|
1806
|
+
# `x-amz-grant-read: id="11112222333", id="444455556666" `
|
1807
|
+
#
|
1808
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
1809
|
+
#
|
1810
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
983
1811
|
#
|
984
|
-
#
|
1812
|
+
# </note>
|
1813
|
+
#
|
1814
|
+
#
|
1815
|
+
#
|
1816
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
|
1817
|
+
# [2]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
|
985
1818
|
# @option options [String] :grant_read
|
986
|
-
#
|
1819
|
+
# Specify access permissions explicitly to allow grantee to read the
|
1820
|
+
# object data and its metadata.
|
1821
|
+
#
|
1822
|
+
# By default, all objects are private. Only the owner has full access
|
1823
|
+
# control. When uploading an object, you can use this header to
|
1824
|
+
# explicitly grant access permissions to specific Amazon Web Services
|
1825
|
+
# accounts or groups. This header maps to specific permissions that
|
1826
|
+
# Amazon S3 supports in an ACL. For more information, see [Access
|
1827
|
+
# Control List (ACL) Overview][1] in the *Amazon S3 User Guide*.
|
1828
|
+
#
|
1829
|
+
# You specify each grantee as a type=value pair, where the type is one
|
1830
|
+
# of the following:
|
1831
|
+
#
|
1832
|
+
# * `id` – if the value specified is the canonical user ID of an Amazon
|
1833
|
+
# Web Services account
|
1834
|
+
#
|
1835
|
+
# * `uri` – if you are granting permissions to a predefined group
|
1836
|
+
#
|
1837
|
+
# * `emailAddress` – if the value specified is the email address of an
|
1838
|
+
# Amazon Web Services account
|
1839
|
+
#
|
1840
|
+
# <note markdown="1"> Using email addresses to specify a grantee is only supported in the
|
1841
|
+
# following Amazon Web Services Regions:
|
1842
|
+
#
|
1843
|
+
# * US East (N. Virginia)
|
1844
|
+
#
|
1845
|
+
# * US West (N. California)
|
1846
|
+
#
|
1847
|
+
# * US West (Oregon)
|
1848
|
+
#
|
1849
|
+
# * Asia Pacific (Singapore)
|
1850
|
+
#
|
1851
|
+
# * Asia Pacific (Sydney)
|
1852
|
+
#
|
1853
|
+
# * Asia Pacific (Tokyo)
|
1854
|
+
#
|
1855
|
+
# * Europe (Ireland)
|
1856
|
+
#
|
1857
|
+
# * South America (São Paulo)
|
1858
|
+
#
|
1859
|
+
# For a list of all the Amazon S3 supported Regions and endpoints, see
|
1860
|
+
# [Regions and Endpoints][2] in the Amazon Web Services General
|
1861
|
+
# Reference.
|
1862
|
+
#
|
1863
|
+
# </note>
|
1864
|
+
#
|
1865
|
+
# For example, the following `x-amz-grant-read` header grants the Amazon
|
1866
|
+
# Web Services accounts identified by account IDs permissions to read
|
1867
|
+
# object data and its metadata:
|
1868
|
+
#
|
1869
|
+
# `x-amz-grant-read: id="11112222333", id="444455556666" `
|
1870
|
+
#
|
1871
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
1872
|
+
#
|
1873
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
1874
|
+
#
|
1875
|
+
# </note>
|
987
1876
|
#
|
988
|
-
#
|
1877
|
+
#
|
1878
|
+
#
|
1879
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
|
1880
|
+
# [2]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
|
989
1881
|
# @option options [String] :grant_read_acp
|
990
|
-
#
|
1882
|
+
# Specify access permissions explicitly to allows grantee to read the
|
1883
|
+
# object ACL.
|
1884
|
+
#
|
1885
|
+
# By default, all objects are private. Only the owner has full access
|
1886
|
+
# control. When uploading an object, you can use this header to
|
1887
|
+
# explicitly grant access permissions to specific Amazon Web Services
|
1888
|
+
# accounts or groups. This header maps to specific permissions that
|
1889
|
+
# Amazon S3 supports in an ACL. For more information, see [Access
|
1890
|
+
# Control List (ACL) Overview][1] in the *Amazon S3 User Guide*.
|
1891
|
+
#
|
1892
|
+
# You specify each grantee as a type=value pair, where the type is one
|
1893
|
+
# of the following:
|
1894
|
+
#
|
1895
|
+
# * `id` – if the value specified is the canonical user ID of an Amazon
|
1896
|
+
# Web Services account
|
1897
|
+
#
|
1898
|
+
# * `uri` – if you are granting permissions to a predefined group
|
1899
|
+
#
|
1900
|
+
# * `emailAddress` – if the value specified is the email address of an
|
1901
|
+
# Amazon Web Services account
|
1902
|
+
#
|
1903
|
+
# <note markdown="1"> Using email addresses to specify a grantee is only supported in the
|
1904
|
+
# following Amazon Web Services Regions:
|
1905
|
+
#
|
1906
|
+
# * US East (N. Virginia)
|
1907
|
+
#
|
1908
|
+
# * US West (N. California)
|
1909
|
+
#
|
1910
|
+
# * US West (Oregon)
|
1911
|
+
#
|
1912
|
+
# * Asia Pacific (Singapore)
|
1913
|
+
#
|
1914
|
+
# * Asia Pacific (Sydney)
|
1915
|
+
#
|
1916
|
+
# * Asia Pacific (Tokyo)
|
1917
|
+
#
|
1918
|
+
# * Europe (Ireland)
|
1919
|
+
#
|
1920
|
+
# * South America (São Paulo)
|
1921
|
+
#
|
1922
|
+
# For a list of all the Amazon S3 supported Regions and endpoints, see
|
1923
|
+
# [Regions and Endpoints][2] in the Amazon Web Services General
|
1924
|
+
# Reference.
|
1925
|
+
#
|
1926
|
+
# </note>
|
1927
|
+
#
|
1928
|
+
# For example, the following `x-amz-grant-read` header grants the Amazon
|
1929
|
+
# Web Services accounts identified by account IDs permissions to read
|
1930
|
+
# object data and its metadata:
|
1931
|
+
#
|
1932
|
+
# `x-amz-grant-read: id="11112222333", id="444455556666" `
|
1933
|
+
#
|
1934
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
1935
|
+
#
|
1936
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
1937
|
+
#
|
1938
|
+
# </note>
|
1939
|
+
#
|
1940
|
+
#
|
991
1941
|
#
|
992
|
-
#
|
1942
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
|
1943
|
+
# [2]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
|
993
1944
|
# @option options [String] :grant_write_acp
|
994
|
-
#
|
1945
|
+
# Specify access permissions explicitly to allows grantee to allow
|
1946
|
+
# grantee to write the ACL for the applicable object.
|
1947
|
+
#
|
1948
|
+
# By default, all objects are private. Only the owner has full access
|
1949
|
+
# control. When uploading an object, you can use this header to
|
1950
|
+
# explicitly grant access permissions to specific Amazon Web Services
|
1951
|
+
# accounts or groups. This header maps to specific permissions that
|
1952
|
+
# Amazon S3 supports in an ACL. For more information, see [Access
|
1953
|
+
# Control List (ACL) Overview][1] in the *Amazon S3 User Guide*.
|
1954
|
+
#
|
1955
|
+
# You specify each grantee as a type=value pair, where the type is one
|
1956
|
+
# of the following:
|
1957
|
+
#
|
1958
|
+
# * `id` – if the value specified is the canonical user ID of an Amazon
|
1959
|
+
# Web Services account
|
1960
|
+
#
|
1961
|
+
# * `uri` – if you are granting permissions to a predefined group
|
1962
|
+
#
|
1963
|
+
# * `emailAddress` – if the value specified is the email address of an
|
1964
|
+
# Amazon Web Services account
|
1965
|
+
#
|
1966
|
+
# <note markdown="1"> Using email addresses to specify a grantee is only supported in the
|
1967
|
+
# following Amazon Web Services Regions:
|
1968
|
+
#
|
1969
|
+
# * US East (N. Virginia)
|
1970
|
+
#
|
1971
|
+
# * US West (N. California)
|
1972
|
+
#
|
1973
|
+
# * US West (Oregon)
|
1974
|
+
#
|
1975
|
+
# * Asia Pacific (Singapore)
|
1976
|
+
#
|
1977
|
+
# * Asia Pacific (Sydney)
|
1978
|
+
#
|
1979
|
+
# * Asia Pacific (Tokyo)
|
1980
|
+
#
|
1981
|
+
# * Europe (Ireland)
|
995
1982
|
#
|
996
|
-
#
|
1983
|
+
# * South America (São Paulo)
|
1984
|
+
#
|
1985
|
+
# For a list of all the Amazon S3 supported Regions and endpoints, see
|
1986
|
+
# [Regions and Endpoints][2] in the Amazon Web Services General
|
1987
|
+
# Reference.
|
1988
|
+
#
|
1989
|
+
# </note>
|
1990
|
+
#
|
1991
|
+
# For example, the following `x-amz-grant-read` header grants the Amazon
|
1992
|
+
# Web Services accounts identified by account IDs permissions to read
|
1993
|
+
# object data and its metadata:
|
1994
|
+
#
|
1995
|
+
# `x-amz-grant-read: id="11112222333", id="444455556666" `
|
1996
|
+
#
|
1997
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
1998
|
+
#
|
1999
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
2000
|
+
#
|
2001
|
+
# </note>
|
2002
|
+
#
|
2003
|
+
#
|
2004
|
+
#
|
2005
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
|
2006
|
+
# [2]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
|
997
2007
|
# @option options [Hash<String,String>] :metadata
|
998
2008
|
# A map of metadata to store with the object in S3.
|
999
2009
|
# @option options [String] :server_side_encryption
|
1000
|
-
# The server-side encryption algorithm used when
|
1001
|
-
# Amazon S3 (for example, AES256
|
2010
|
+
# The server-side encryption algorithm used when you store this object
|
2011
|
+
# in Amazon S3 (for example, `AES256`, `aws:kms`).
|
2012
|
+
#
|
2013
|
+
# <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
|
2014
|
+
# managed keys (SSE-S3) (`AES256`) is supported.
|
2015
|
+
#
|
2016
|
+
# </note>
|
1002
2017
|
# @option options [String] :storage_class
|
1003
2018
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
1004
2019
|
# created objects. The STANDARD storage class provides high durability
|
1005
2020
|
# and high availability. Depending on performance needs, you can specify
|
1006
|
-
# a different Storage Class.
|
1007
|
-
#
|
1008
|
-
#
|
2021
|
+
# a different Storage Class. For more information, see [Storage
|
2022
|
+
# Classes][1] in the *Amazon S3 User Guide*.
|
2023
|
+
#
|
2024
|
+
# <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
|
2025
|
+
# supported to store newly created objects.
|
2026
|
+
#
|
2027
|
+
# * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
|
2028
|
+
#
|
2029
|
+
# </note>
|
1009
2030
|
#
|
1010
2031
|
#
|
1011
2032
|
#
|
@@ -1014,75 +2035,127 @@ module Aws::S3
|
|
1014
2035
|
# If the bucket is configured as a website, redirects requests for this
|
1015
2036
|
# object to another object in the same bucket or to an external URL.
|
1016
2037
|
# Amazon S3 stores the value of this header in the object metadata.
|
2038
|
+
#
|
2039
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2040
|
+
#
|
2041
|
+
# </note>
|
1017
2042
|
# @option options [String] :sse_customer_algorithm
|
1018
|
-
# Specifies the algorithm to use
|
2043
|
+
# Specifies the algorithm to use when encrypting the object (for
|
1019
2044
|
# example, AES256).
|
2045
|
+
#
|
2046
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2047
|
+
#
|
2048
|
+
# </note>
|
1020
2049
|
# @option options [String] :sse_customer_key
|
1021
2050
|
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
1022
2051
|
# encrypting data. This value is used to store the object and then it is
|
1023
2052
|
# discarded; Amazon S3 does not store the encryption key. The key must
|
1024
2053
|
# be appropriate for use with the algorithm specified in the
|
1025
2054
|
# `x-amz-server-side-encryption-customer-algorithm` header.
|
2055
|
+
#
|
2056
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2057
|
+
#
|
2058
|
+
# </note>
|
1026
2059
|
# @option options [String] :sse_customer_key_md5
|
1027
|
-
# Specifies the 128-bit MD5 digest of the encryption
|
1028
|
-
# RFC 1321. Amazon S3 uses this header for a message
|
1029
|
-
# ensure that the encryption key was transmitted
|
1030
|
-
#
|
1031
|
-
# Specifies the ID of the symmetric customer managed key to use for
|
1032
|
-
# object encryption. All GET and PUT requests for an object protected by
|
1033
|
-
# Amazon Web Services KMS will fail if not made via SSL or using SigV4.
|
1034
|
-
# For information about configuring using any of the officially
|
1035
|
-
# supported Amazon Web Services SDKs and Amazon Web Services CLI, see
|
1036
|
-
# [Specifying the Signature Version in Request Authentication][1] in the
|
1037
|
-
# *Amazon S3 User Guide*.
|
2060
|
+
# Specifies the 128-bit MD5 digest of the customer-provided encryption
|
2061
|
+
# key according to RFC 1321. Amazon S3 uses this header for a message
|
2062
|
+
# integrity check to ensure that the encryption key was transmitted
|
2063
|
+
# without error.
|
1038
2064
|
#
|
2065
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
1039
2066
|
#
|
2067
|
+
# </note>
|
2068
|
+
# @option options [String] :ssekms_key_id
|
2069
|
+
# Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
|
2070
|
+
# encryption customer managed key to use for object encryption.
|
1040
2071
|
#
|
1041
|
-
#
|
2072
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2073
|
+
#
|
2074
|
+
# </note>
|
1042
2075
|
# @option options [String] :ssekms_encryption_context
|
1043
2076
|
# Specifies the Amazon Web Services KMS Encryption Context to use for
|
1044
2077
|
# object encryption. The value of this header is a base64-encoded UTF-8
|
1045
2078
|
# string holding JSON with the encryption context key-value pairs.
|
2079
|
+
#
|
2080
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2081
|
+
#
|
2082
|
+
# </note>
|
1046
2083
|
# @option options [Boolean] :bucket_key_enabled
|
1047
2084
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
1048
|
-
# encryption with server-side encryption using
|
1049
|
-
# Setting this header to `true` causes Amazon S3
|
1050
|
-
# for object encryption with SSE-KMS.
|
2085
|
+
# encryption with server-side encryption using Key Management Service
|
2086
|
+
# (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
|
2087
|
+
# to use an S3 Bucket Key for object encryption with SSE-KMS.
|
1051
2088
|
#
|
1052
2089
|
# Specifying this header with an object action doesn’t affect
|
1053
2090
|
# bucket-level settings for S3 Bucket Key.
|
2091
|
+
#
|
2092
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2093
|
+
#
|
2094
|
+
# </note>
|
1054
2095
|
# @option options [String] :request_payer
|
1055
2096
|
# Confirms that the requester knows that they will be charged for the
|
1056
2097
|
# request. Bucket owners need not specify this parameter in their
|
1057
|
-
# requests.
|
1058
|
-
#
|
2098
|
+
# requests. If either the source or destination S3 bucket has Requester
|
2099
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
2100
|
+
# the object. For information about downloading objects from Requester
|
2101
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
1059
2102
|
# in the *Amazon S3 User Guide*.
|
1060
2103
|
#
|
2104
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2105
|
+
#
|
2106
|
+
# </note>
|
2107
|
+
#
|
1061
2108
|
#
|
1062
2109
|
#
|
1063
2110
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
1064
2111
|
# @option options [String] :tagging
|
1065
2112
|
# The tag-set for the object. The tag-set must be encoded as URL Query
|
1066
2113
|
# parameters.
|
2114
|
+
#
|
2115
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2116
|
+
#
|
2117
|
+
# </note>
|
1067
2118
|
# @option options [String] :object_lock_mode
|
1068
2119
|
# Specifies the Object Lock mode that you want to apply to the uploaded
|
1069
2120
|
# object.
|
2121
|
+
#
|
2122
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2123
|
+
#
|
2124
|
+
# </note>
|
1070
2125
|
# @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
|
1071
2126
|
# Specifies the date and time when you want the Object Lock to expire.
|
2127
|
+
#
|
2128
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2129
|
+
#
|
2130
|
+
# </note>
|
1072
2131
|
# @option options [String] :object_lock_legal_hold_status
|
1073
|
-
# Specifies whether you want to apply a
|
2132
|
+
# Specifies whether you want to apply a legal hold to the uploaded
|
1074
2133
|
# object.
|
2134
|
+
#
|
2135
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2136
|
+
#
|
2137
|
+
# </note>
|
1075
2138
|
# @option options [String] :expected_bucket_owner
|
1076
|
-
# The account ID of the expected bucket owner. If the
|
1077
|
-
#
|
1078
|
-
#
|
2139
|
+
# The account ID of the expected bucket owner. If the account ID that
|
2140
|
+
# you provide does not match the actual owner of the bucket, the request
|
2141
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
2142
|
+
# @option options [String] :checksum_algorithm
|
2143
|
+
# Indicates the algorithm that you want Amazon S3 to use to create the
|
2144
|
+
# checksum for the object. For more information, see [Checking object
|
2145
|
+
# integrity][1] in the *Amazon S3 User Guide*.
|
2146
|
+
#
|
2147
|
+
#
|
2148
|
+
#
|
2149
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
1079
2150
|
# @return [MultipartUpload]
|
1080
2151
|
def initiate_multipart_upload(options = {})
|
1081
2152
|
options = options.merge(
|
1082
2153
|
bucket: @bucket_name,
|
1083
2154
|
key: @key
|
1084
2155
|
)
|
1085
|
-
resp =
|
2156
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
2157
|
+
@client.create_multipart_upload(options)
|
2158
|
+
end
|
1086
2159
|
MultipartUpload.new(
|
1087
2160
|
bucket_name: @bucket_name,
|
1088
2161
|
object_key: @key,
|
@@ -1103,6 +2176,11 @@ module Aws::S3
|
|
1103
2176
|
# content_length: 1,
|
1104
2177
|
# content_md5: "ContentMD5",
|
1105
2178
|
# content_type: "ContentType",
|
2179
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
2180
|
+
# checksum_crc32: "ChecksumCRC32",
|
2181
|
+
# checksum_crc32c: "ChecksumCRC32C",
|
2182
|
+
# checksum_sha1: "ChecksumSHA1",
|
2183
|
+
# checksum_sha256: "ChecksumSHA256",
|
1106
2184
|
# expires: Time.now,
|
1107
2185
|
# grant_full_control: "GrantFullControl",
|
1108
2186
|
# grant_read: "GrantRead",
|
@@ -1111,8 +2189,8 @@ module Aws::S3
|
|
1111
2189
|
# metadata: {
|
1112
2190
|
# "MetadataKey" => "MetadataValue",
|
1113
2191
|
# },
|
1114
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms
|
1115
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
|
2192
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
2193
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
1116
2194
|
# website_redirect_location: "WebsiteRedirectLocation",
|
1117
2195
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
1118
2196
|
# sse_customer_key: "SSECustomerKey",
|
@@ -1130,13 +2208,41 @@ module Aws::S3
|
|
1130
2208
|
# @param [Hash] options ({})
|
1131
2209
|
# @option options [String] :acl
|
1132
2210
|
# The canned ACL to apply to the object. For more information, see
|
1133
|
-
# [Canned ACL][1]
|
2211
|
+
# [Canned ACL][1] in the *Amazon S3 User Guide*.
|
2212
|
+
#
|
2213
|
+
# When adding a new object, you can use headers to grant ACL-based
|
2214
|
+
# permissions to individual Amazon Web Services accounts or to
|
2215
|
+
# predefined groups defined by Amazon S3. These permissions are then
|
2216
|
+
# added to the ACL on the object. By default, all objects are private.
|
2217
|
+
# Only the owner has full access control. For more information, see
|
2218
|
+
# [Access Control List (ACL) Overview][2] and [Managing ACLs Using the
|
2219
|
+
# REST API][3] in the *Amazon S3 User Guide*.
|
2220
|
+
#
|
2221
|
+
# If the bucket that you're uploading objects to uses the bucket owner
|
2222
|
+
# enforced setting for S3 Object Ownership, ACLs are disabled and no
|
2223
|
+
# longer affect permissions. Buckets that use this setting only accept
|
2224
|
+
# PUT requests that don't specify an ACL or PUT requests that specify
|
2225
|
+
# bucket owner full control ACLs, such as the
|
2226
|
+
# `bucket-owner-full-control` canned ACL or an equivalent form of this
|
2227
|
+
# ACL expressed in the XML format. PUT requests that contain other ACLs
|
2228
|
+
# (for example, custom grants to certain Amazon Web Services accounts)
|
2229
|
+
# fail and return a `400` error with the error code
|
2230
|
+
# `AccessControlListNotSupported`. For more information, see [
|
2231
|
+
# Controlling ownership of objects and disabling ACLs][4] in the *Amazon
|
2232
|
+
# S3 User Guide*.
|
2233
|
+
#
|
2234
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
2235
|
+
#
|
2236
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
1134
2237
|
#
|
1135
|
-
#
|
2238
|
+
# </note>
|
1136
2239
|
#
|
1137
2240
|
#
|
1138
2241
|
#
|
1139
2242
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
|
2243
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
|
2244
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html
|
2245
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
|
1140
2246
|
# @option options [String, StringIO, File] :body
|
1141
2247
|
# Object data.
|
1142
2248
|
# @option options [String] :cache_control
|
@@ -1150,30 +2256,30 @@ module Aws::S3
|
|
1150
2256
|
# @option options [String] :content_disposition
|
1151
2257
|
# Specifies presentational information for the object. For more
|
1152
2258
|
# information, see
|
1153
|
-
# [
|
2259
|
+
# [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
|
1154
2260
|
#
|
1155
2261
|
#
|
1156
2262
|
#
|
1157
|
-
# [1]:
|
2263
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
|
1158
2264
|
# @option options [String] :content_encoding
|
1159
2265
|
# Specifies what content encodings have been applied to the object and
|
1160
2266
|
# thus what decoding mechanisms must be applied to obtain the media-type
|
1161
2267
|
# referenced by the Content-Type header field. For more information, see
|
1162
|
-
# [
|
2268
|
+
# [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
|
1163
2269
|
#
|
1164
2270
|
#
|
1165
2271
|
#
|
1166
|
-
# [1]:
|
2272
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
|
1167
2273
|
# @option options [String] :content_language
|
1168
2274
|
# The language the content is in.
|
1169
2275
|
# @option options [Integer] :content_length
|
1170
2276
|
# Size of the body in bytes. This parameter is useful when the size of
|
1171
2277
|
# the body cannot be determined automatically. For more information, see
|
1172
|
-
# [
|
2278
|
+
# [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
|
1173
2279
|
#
|
1174
2280
|
#
|
1175
2281
|
#
|
1176
|
-
# [1]:
|
2282
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
|
1177
2283
|
# @option options [String] :content_md5
|
1178
2284
|
# The base64-encoded 128-bit MD5 digest of the message (without the
|
1179
2285
|
# headers) according to RFC 1864. This header can be used as a message
|
@@ -1183,54 +2289,185 @@ module Aws::S3
|
|
1183
2289
|
# information about REST request authentication, see [REST
|
1184
2290
|
# Authentication][1].
|
1185
2291
|
#
|
2292
|
+
# <note markdown="1"> The `Content-MD5` header is required for any request to upload an
|
2293
|
+
# object with a retention period configured using Amazon S3 Object Lock.
|
2294
|
+
# For more information about Amazon S3 Object Lock, see [Amazon S3
|
2295
|
+
# Object Lock Overview][2] in the *Amazon S3 User Guide*.
|
2296
|
+
#
|
2297
|
+
# </note>
|
2298
|
+
#
|
2299
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2300
|
+
#
|
2301
|
+
# </note>
|
2302
|
+
#
|
1186
2303
|
#
|
1187
2304
|
#
|
1188
2305
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
|
2306
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html
|
1189
2307
|
# @option options [String] :content_type
|
1190
2308
|
# A standard MIME type describing the format of the contents. For more
|
1191
2309
|
# information, see
|
1192
|
-
# [
|
2310
|
+
# [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
|
2311
|
+
#
|
2312
|
+
#
|
2313
|
+
#
|
2314
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
|
2315
|
+
# @option options [String] :checksum_algorithm
|
2316
|
+
# Indicates the algorithm used to create the checksum for the object
|
2317
|
+
# when you use the SDK. This header will not provide any additional
|
2318
|
+
# functionality if you don't use the SDK. When you send this header,
|
2319
|
+
# there must be a corresponding `x-amz-checksum-algorithm ` or
|
2320
|
+
# `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request
|
2321
|
+
# with the HTTP status code `400 Bad Request`.
|
2322
|
+
#
|
2323
|
+
# For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
|
2324
|
+
# the supported algorithm from the following list:
|
2325
|
+
#
|
2326
|
+
# * CRC32
|
2327
|
+
#
|
2328
|
+
# * CRC32C
|
2329
|
+
#
|
2330
|
+
# * SHA1
|
2331
|
+
#
|
2332
|
+
# * SHA256
|
2333
|
+
#
|
2334
|
+
# For more information, see [Checking object integrity][1] in the
|
2335
|
+
# *Amazon S3 User Guide*.
|
2336
|
+
#
|
2337
|
+
# If the individual checksum value you provide through
|
2338
|
+
# `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
|
2339
|
+
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
|
2340
|
+
# provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
|
2341
|
+
# that matches the provided value in `x-amz-checksum-algorithm `.
|
2342
|
+
#
|
2343
|
+
# <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
|
2344
|
+
# is the default checksum algorithm that's used for performance.
|
2345
|
+
#
|
2346
|
+
# </note>
|
2347
|
+
#
|
2348
|
+
#
|
2349
|
+
#
|
2350
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
2351
|
+
# @option options [String] :checksum_crc32
|
2352
|
+
# This header can be used as a data integrity check to verify that the
|
2353
|
+
# data received is the same data that was originally sent. This header
|
2354
|
+
# specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
|
2355
|
+
# more information, see [Checking object integrity][1] in the *Amazon S3
|
2356
|
+
# User Guide*.
|
2357
|
+
#
|
2358
|
+
#
|
2359
|
+
#
|
2360
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
2361
|
+
# @option options [String] :checksum_crc32c
|
2362
|
+
# This header can be used as a data integrity check to verify that the
|
2363
|
+
# data received is the same data that was originally sent. This header
|
2364
|
+
# specifies the base64-encoded, 32-bit CRC32C checksum of the object.
|
2365
|
+
# For more information, see [Checking object integrity][1] in the
|
2366
|
+
# *Amazon S3 User Guide*.
|
2367
|
+
#
|
2368
|
+
#
|
2369
|
+
#
|
2370
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
2371
|
+
# @option options [String] :checksum_sha1
|
2372
|
+
# This header can be used as a data integrity check to verify that the
|
2373
|
+
# data received is the same data that was originally sent. This header
|
2374
|
+
# specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
|
2375
|
+
# more information, see [Checking object integrity][1] in the *Amazon S3
|
2376
|
+
# User Guide*.
|
1193
2377
|
#
|
1194
2378
|
#
|
1195
2379
|
#
|
1196
|
-
# [1]:
|
2380
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
2381
|
+
# @option options [String] :checksum_sha256
|
2382
|
+
# This header can be used as a data integrity check to verify that the
|
2383
|
+
# data received is the same data that was originally sent. This header
|
2384
|
+
# specifies the base64-encoded, 256-bit SHA-256 digest of the object.
|
2385
|
+
# For more information, see [Checking object integrity][1] in the
|
2386
|
+
# *Amazon S3 User Guide*.
|
2387
|
+
#
|
2388
|
+
#
|
2389
|
+
#
|
2390
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
1197
2391
|
# @option options [Time,DateTime,Date,Integer,String] :expires
|
1198
2392
|
# The date and time at which the object is no longer cacheable. For more
|
1199
2393
|
# information, see
|
1200
|
-
# [
|
2394
|
+
# [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
|
1201
2395
|
#
|
1202
2396
|
#
|
1203
2397
|
#
|
1204
|
-
# [1]:
|
2398
|
+
# [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
|
1205
2399
|
# @option options [String] :grant_full_control
|
1206
2400
|
# Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
|
1207
2401
|
# object.
|
1208
2402
|
#
|
1209
|
-
# This
|
2403
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
2404
|
+
#
|
2405
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
2406
|
+
#
|
2407
|
+
# </note>
|
1210
2408
|
# @option options [String] :grant_read
|
1211
2409
|
# Allows grantee to read the object data and its metadata.
|
1212
2410
|
#
|
1213
|
-
# This
|
2411
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
2412
|
+
#
|
2413
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
2414
|
+
#
|
2415
|
+
# </note>
|
1214
2416
|
# @option options [String] :grant_read_acp
|
1215
2417
|
# Allows grantee to read the object ACL.
|
1216
2418
|
#
|
1217
|
-
# This
|
2419
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
2420
|
+
#
|
2421
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
2422
|
+
#
|
2423
|
+
# </note>
|
1218
2424
|
# @option options [String] :grant_write_acp
|
1219
2425
|
# Allows grantee to write the ACL for the applicable object.
|
1220
2426
|
#
|
1221
|
-
# This
|
2427
|
+
# <note markdown="1"> * This functionality is not supported for directory buckets.
|
2428
|
+
#
|
2429
|
+
# * This functionality is not supported for Amazon S3 on Outposts.
|
2430
|
+
#
|
2431
|
+
# </note>
|
1222
2432
|
# @option options [Hash<String,String>] :metadata
|
1223
2433
|
# A map of metadata to store with the object in S3.
|
1224
2434
|
# @option options [String] :server_side_encryption
|
1225
|
-
# The server-side encryption algorithm used when
|
1226
|
-
# Amazon S3 (for example, AES256
|
2435
|
+
# The server-side encryption algorithm that was used when you store this
|
2436
|
+
# object in Amazon S3 (for example, `AES256`, `aws:kms`,
|
2437
|
+
# `aws:kms:dsse`).
|
2438
|
+
#
|
2439
|
+
# <b>General purpose buckets </b> - You have four mutually exclusive
|
2440
|
+
# options to protect data using server-side encryption in Amazon S3,
|
2441
|
+
# depending on how you choose to manage the encryption keys.
|
2442
|
+
# Specifically, the encryption key options are Amazon S3 managed keys
|
2443
|
+
# (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
|
2444
|
+
# customer-provided keys (SSE-C). Amazon S3 encrypts data with
|
2445
|
+
# server-side encryption by using Amazon S3 managed keys (SSE-S3) by
|
2446
|
+
# default. You can optionally tell Amazon S3 to encrypt data at rest by
|
2447
|
+
# using server-side encryption with other key options. For more
|
2448
|
+
# information, see [Using Server-Side Encryption][1] in the *Amazon S3
|
2449
|
+
# User Guide*.
|
2450
|
+
#
|
2451
|
+
# <b>Directory buckets </b> - For directory buckets, only the
|
2452
|
+
# server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`)
|
2453
|
+
# value is supported.
|
2454
|
+
#
|
2455
|
+
#
|
2456
|
+
#
|
2457
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
|
1227
2458
|
# @option options [String] :storage_class
|
1228
2459
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
1229
2460
|
# created objects. The STANDARD storage class provides high durability
|
1230
2461
|
# and high availability. Depending on performance needs, you can specify
|
1231
|
-
# a different Storage Class.
|
1232
|
-
#
|
1233
|
-
#
|
2462
|
+
# a different Storage Class. For more information, see [Storage
|
2463
|
+
# Classes][1] in the *Amazon S3 User Guide*.
|
2464
|
+
#
|
2465
|
+
# <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
|
2466
|
+
# supported to store newly created objects.
|
2467
|
+
#
|
2468
|
+
# * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
|
2469
|
+
#
|
2470
|
+
# </note>
|
1234
2471
|
#
|
1235
2472
|
#
|
1236
2473
|
#
|
@@ -1239,7 +2476,8 @@ module Aws::S3
|
|
1239
2476
|
# If the bucket is configured as a website, redirects requests for this
|
1240
2477
|
# object to another object in the same bucket or to an external URL.
|
1241
2478
|
# Amazon S3 stores the value of this header in the object metadata. For
|
1242
|
-
# information about object metadata, see [Object Key and Metadata][1]
|
2479
|
+
# information about object metadata, see [Object Key and Metadata][1] in
|
2480
|
+
# the *Amazon S3 User Guide*.
|
1243
2481
|
#
|
1244
2482
|
# In the following example, the request header sets the redirect to an
|
1245
2483
|
# object (anotherPage.html) in the same bucket:
|
@@ -1253,7 +2491,11 @@ module Aws::S3
|
|
1253
2491
|
#
|
1254
2492
|
# For more information about website hosting in Amazon S3, see [Hosting
|
1255
2493
|
# Websites on Amazon S3][2] and [How to Configure Website Page
|
1256
|
-
# Redirects][3]
|
2494
|
+
# Redirects][3] in the *Amazon S3 User Guide*.
|
2495
|
+
#
|
2496
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2497
|
+
#
|
2498
|
+
# </note>
|
1257
2499
|
#
|
1258
2500
|
#
|
1259
2501
|
#
|
@@ -1261,76 +2503,130 @@ module Aws::S3
|
|
1261
2503
|
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
|
1262
2504
|
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
|
1263
2505
|
# @option options [String] :sse_customer_algorithm
|
1264
|
-
# Specifies the algorithm to use
|
1265
|
-
# example, AES256).
|
2506
|
+
# Specifies the algorithm to use when encrypting the object (for
|
2507
|
+
# example, `AES256`).
|
2508
|
+
#
|
2509
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2510
|
+
#
|
2511
|
+
# </note>
|
1266
2512
|
# @option options [String] :sse_customer_key
|
1267
2513
|
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
1268
2514
|
# encrypting data. This value is used to store the object and then it is
|
1269
2515
|
# discarded; Amazon S3 does not store the encryption key. The key must
|
1270
2516
|
# be appropriate for use with the algorithm specified in the
|
1271
2517
|
# `x-amz-server-side-encryption-customer-algorithm` header.
|
2518
|
+
#
|
2519
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2520
|
+
#
|
2521
|
+
# </note>
|
1272
2522
|
# @option options [String] :sse_customer_key_md5
|
1273
2523
|
# Specifies the 128-bit MD5 digest of the encryption key according to
|
1274
2524
|
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
1275
2525
|
# ensure that the encryption key was transmitted without error.
|
2526
|
+
#
|
2527
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2528
|
+
#
|
2529
|
+
# </note>
|
1276
2530
|
# @option options [String] :ssekms_key_id
|
1277
|
-
# If `x-amz-server-side-encryption`
|
1278
|
-
# `aws:kms`, this header specifies the ID
|
1279
|
-
# Management Service (
|
1280
|
-
# managed key that was used for the object. If you specify
|
1281
|
-
# `x-amz-server-side-encryption:aws:kms
|
2531
|
+
# If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
|
2532
|
+
# `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
|
2533
|
+
# Alias) of the Key Management Service (KMS) symmetric encryption
|
2534
|
+
# customer managed key that was used for the object. If you specify
|
2535
|
+
# `x-amz-server-side-encryption:aws:kms` or
|
2536
|
+
# `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
|
1282
2537
|
# x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
|
1283
|
-
# Amazon Web Services managed key to protect the data. If the
|
1284
|
-
# does not exist in the same account issuing the
|
1285
|
-
# the full ARN and not just the ID.
|
2538
|
+
# Amazon Web Services managed key (`aws/s3`) to protect the data. If the
|
2539
|
+
# KMS key does not exist in the same account that's issuing the
|
2540
|
+
# command, you must use the full ARN and not just the ID.
|
2541
|
+
#
|
2542
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2543
|
+
#
|
2544
|
+
# </note>
|
1286
2545
|
# @option options [String] :ssekms_encryption_context
|
1287
2546
|
# Specifies the Amazon Web Services KMS Encryption Context to use for
|
1288
2547
|
# object encryption. The value of this header is a base64-encoded UTF-8
|
1289
|
-
# string holding JSON with the encryption context key-value pairs.
|
2548
|
+
# string holding JSON with the encryption context key-value pairs. This
|
2549
|
+
# value is stored as object metadata and automatically gets passed on to
|
2550
|
+
# Amazon Web Services KMS for future `GetObject` or `CopyObject`
|
2551
|
+
# operations on this object. This value must be explicitly added during
|
2552
|
+
# `CopyObject` operations.
|
2553
|
+
#
|
2554
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2555
|
+
#
|
2556
|
+
# </note>
|
1290
2557
|
# @option options [Boolean] :bucket_key_enabled
|
1291
2558
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
1292
|
-
# encryption with server-side encryption using
|
1293
|
-
# Setting this header to `true` causes Amazon S3
|
1294
|
-
# for object encryption with SSE-KMS.
|
2559
|
+
# encryption with server-side encryption using Key Management Service
|
2560
|
+
# (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
|
2561
|
+
# to use an S3 Bucket Key for object encryption with SSE-KMS.
|
1295
2562
|
#
|
1296
2563
|
# Specifying this header with a PUT action doesn’t affect bucket-level
|
1297
2564
|
# settings for S3 Bucket Key.
|
2565
|
+
#
|
2566
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2567
|
+
#
|
2568
|
+
# </note>
|
1298
2569
|
# @option options [String] :request_payer
|
1299
2570
|
# Confirms that the requester knows that they will be charged for the
|
1300
2571
|
# request. Bucket owners need not specify this parameter in their
|
1301
|
-
# requests.
|
1302
|
-
#
|
2572
|
+
# requests. If either the source or destination S3 bucket has Requester
|
2573
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
2574
|
+
# the object. For information about downloading objects from Requester
|
2575
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
1303
2576
|
# in the *Amazon S3 User Guide*.
|
1304
2577
|
#
|
2578
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2579
|
+
#
|
2580
|
+
# </note>
|
2581
|
+
#
|
1305
2582
|
#
|
1306
2583
|
#
|
1307
2584
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
1308
2585
|
# @option options [String] :tagging
|
1309
2586
|
# The tag-set for the object. The tag-set must be encoded as URL Query
|
1310
2587
|
# parameters. (For example, "Key1=Value1")
|
2588
|
+
#
|
2589
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2590
|
+
#
|
2591
|
+
# </note>
|
1311
2592
|
# @option options [String] :object_lock_mode
|
1312
2593
|
# The Object Lock mode that you want to apply to this object.
|
2594
|
+
#
|
2595
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2596
|
+
#
|
2597
|
+
# </note>
|
1313
2598
|
# @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
|
1314
2599
|
# The date and time when you want this object's Object Lock to expire.
|
1315
2600
|
# Must be formatted as a timestamp parameter.
|
2601
|
+
#
|
2602
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2603
|
+
#
|
2604
|
+
# </note>
|
1316
2605
|
# @option options [String] :object_lock_legal_hold_status
|
1317
2606
|
# Specifies whether a legal hold will be applied to this object. For
|
1318
|
-
# more information about S3 Object Lock, see [Object Lock][1]
|
2607
|
+
# more information about S3 Object Lock, see [Object Lock][1] in the
|
2608
|
+
# *Amazon S3 User Guide*.
|
2609
|
+
#
|
2610
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2611
|
+
#
|
2612
|
+
# </note>
|
1319
2613
|
#
|
1320
2614
|
#
|
1321
2615
|
#
|
1322
2616
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
|
1323
2617
|
# @option options [String] :expected_bucket_owner
|
1324
|
-
# The account ID of the expected bucket owner. If the
|
1325
|
-
#
|
1326
|
-
#
|
2618
|
+
# The account ID of the expected bucket owner. If the account ID that
|
2619
|
+
# you provide does not match the actual owner of the bucket, the request
|
2620
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
1327
2621
|
# @return [Types::PutObjectOutput]
|
1328
2622
|
def put(options = {})
|
1329
2623
|
options = options.merge(
|
1330
2624
|
bucket: @bucket_name,
|
1331
2625
|
key: @key
|
1332
2626
|
)
|
1333
|
-
resp =
|
2627
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
2628
|
+
@client.put_object(options)
|
2629
|
+
end
|
1334
2630
|
resp.data
|
1335
2631
|
end
|
1336
2632
|
|
@@ -1384,7 +2680,7 @@ module Aws::S3
|
|
1384
2680
|
# bucket_name: "BucketName", # required
|
1385
2681
|
# prefix: "LocationPrefix", # required
|
1386
2682
|
# encryption: {
|
1387
|
-
# encryption_type: "AES256", # required, accepts AES256, aws:kms
|
2683
|
+
# encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
|
1388
2684
|
# kms_key_id: "SSEKMSKeyId",
|
1389
2685
|
# kms_context: "KMSContext",
|
1390
2686
|
# },
|
@@ -1415,11 +2711,12 @@ module Aws::S3
|
|
1415
2711
|
# value: "MetadataValue",
|
1416
2712
|
# },
|
1417
2713
|
# ],
|
1418
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
|
2714
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
1419
2715
|
# },
|
1420
2716
|
# },
|
1421
2717
|
# },
|
1422
2718
|
# request_payer: "requester", # accepts requester
|
2719
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
1423
2720
|
# expected_bucket_owner: "AccountId",
|
1424
2721
|
# })
|
1425
2722
|
# @param [Hash] options ({})
|
@@ -1430,24 +2727,47 @@ module Aws::S3
|
|
1430
2727
|
# @option options [String] :request_payer
|
1431
2728
|
# Confirms that the requester knows that they will be charged for the
|
1432
2729
|
# request. Bucket owners need not specify this parameter in their
|
1433
|
-
# requests.
|
1434
|
-
#
|
2730
|
+
# requests. If either the source or destination S3 bucket has Requester
|
2731
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
2732
|
+
# the object. For information about downloading objects from Requester
|
2733
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
1435
2734
|
# in the *Amazon S3 User Guide*.
|
1436
2735
|
#
|
2736
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2737
|
+
#
|
2738
|
+
# </note>
|
2739
|
+
#
|
1437
2740
|
#
|
1438
2741
|
#
|
1439
2742
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
2743
|
+
# @option options [String] :checksum_algorithm
|
2744
|
+
# Indicates the algorithm used to create the checksum for the object
|
2745
|
+
# when you use the SDK. This header will not provide any additional
|
2746
|
+
# functionality if you don't use the SDK. When you send this header,
|
2747
|
+
# there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
|
2748
|
+
# header sent. Otherwise, Amazon S3 fails the request with the HTTP
|
2749
|
+
# status code `400 Bad Request`. For more information, see [Checking
|
2750
|
+
# object integrity][1] in the *Amazon S3 User Guide*.
|
2751
|
+
#
|
2752
|
+
# If you provide an individual checksum, Amazon S3 ignores any provided
|
2753
|
+
# `ChecksumAlgorithm` parameter.
|
2754
|
+
#
|
2755
|
+
#
|
2756
|
+
#
|
2757
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
1440
2758
|
# @option options [String] :expected_bucket_owner
|
1441
|
-
# The account ID of the expected bucket owner. If the
|
1442
|
-
#
|
1443
|
-
#
|
2759
|
+
# The account ID of the expected bucket owner. If the account ID that
|
2760
|
+
# you provide does not match the actual owner of the bucket, the request
|
2761
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
1444
2762
|
# @return [Types::RestoreObjectOutput]
|
1445
2763
|
def restore_object(options = {})
|
1446
2764
|
options = options.merge(
|
1447
2765
|
bucket: @bucket_name,
|
1448
2766
|
key: @key
|
1449
2767
|
)
|
1450
|
-
resp =
|
2768
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
2769
|
+
@client.restore_object(options)
|
2770
|
+
end
|
1451
2771
|
resp.data
|
1452
2772
|
end
|
1453
2773
|
|
@@ -1459,6 +2779,12 @@ module Aws::S3
|
|
1459
2779
|
# if_none_match: "IfNoneMatch",
|
1460
2780
|
# if_unmodified_since: Time.now,
|
1461
2781
|
# range: "Range",
|
2782
|
+
# response_cache_control: "ResponseCacheControl",
|
2783
|
+
# response_content_disposition: "ResponseContentDisposition",
|
2784
|
+
# response_content_encoding: "ResponseContentEncoding",
|
2785
|
+
# response_content_language: "ResponseContentLanguage",
|
2786
|
+
# response_content_type: "ResponseContentType",
|
2787
|
+
# response_expires: Time.now,
|
1462
2788
|
# version_id: "ObjectVersionId",
|
1463
2789
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
1464
2790
|
# sse_customer_key: "SSECustomerKey",
|
@@ -1466,55 +2792,143 @@ module Aws::S3
|
|
1466
2792
|
# request_payer: "requester", # accepts requester
|
1467
2793
|
# part_number: 1,
|
1468
2794
|
# expected_bucket_owner: "AccountId",
|
2795
|
+
# checksum_mode: "ENABLED", # accepts ENABLED
|
1469
2796
|
# })
|
1470
2797
|
# @param [Hash] options ({})
|
1471
2798
|
# @option options [String] :if_match
|
1472
2799
|
# Return the object only if its entity tag (ETag) is the same as the one
|
1473
|
-
# specified
|
2800
|
+
# specified; otherwise, return a 412 (precondition failed) error.
|
2801
|
+
#
|
2802
|
+
# If both of the `If-Match` and `If-Unmodified-Since` headers are
|
2803
|
+
# present in the request as follows:
|
2804
|
+
#
|
2805
|
+
# * `If-Match` condition evaluates to `true`, and;
|
2806
|
+
#
|
2807
|
+
# * `If-Unmodified-Since` condition evaluates to `false`;
|
2808
|
+
#
|
2809
|
+
# Then Amazon S3 returns `200 OK` and the data requested.
|
2810
|
+
#
|
2811
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
2812
|
+
#
|
2813
|
+
#
|
2814
|
+
#
|
2815
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1474
2816
|
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
1475
2817
|
# Return the object only if it has been modified since the specified
|
1476
|
-
# time
|
2818
|
+
# time; otherwise, return a 304 (not modified) error.
|
2819
|
+
#
|
2820
|
+
# If both of the `If-None-Match` and `If-Modified-Since` headers are
|
2821
|
+
# present in the request as follows:
|
2822
|
+
#
|
2823
|
+
# * `If-None-Match` condition evaluates to `false`, and;
|
2824
|
+
#
|
2825
|
+
# * `If-Modified-Since` condition evaluates to `true`;
|
2826
|
+
#
|
2827
|
+
# Then Amazon S3 returns the `304 Not Modified` response code.
|
2828
|
+
#
|
2829
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
2830
|
+
#
|
2831
|
+
#
|
2832
|
+
#
|
2833
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1477
2834
|
# @option options [String] :if_none_match
|
1478
2835
|
# Return the object only if its entity tag (ETag) is different from the
|
1479
|
-
# one specified
|
2836
|
+
# one specified; otherwise, return a 304 (not modified) error.
|
2837
|
+
#
|
2838
|
+
# If both of the `If-None-Match` and `If-Modified-Since` headers are
|
2839
|
+
# present in the request as follows:
|
2840
|
+
#
|
2841
|
+
# * `If-None-Match` condition evaluates to `false`, and;
|
2842
|
+
#
|
2843
|
+
# * `If-Modified-Since` condition evaluates to `true`;
|
2844
|
+
#
|
2845
|
+
# Then Amazon S3 returns the `304 Not Modified` response code.
|
2846
|
+
#
|
2847
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
2848
|
+
#
|
2849
|
+
#
|
2850
|
+
#
|
2851
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1480
2852
|
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
1481
2853
|
# Return the object only if it has not been modified since the specified
|
1482
|
-
# time
|
1483
|
-
# @option options [String] :range
|
1484
|
-
# Downloads the specified range bytes of an object. For more information
|
1485
|
-
# about the HTTP Range header, see
|
1486
|
-
# [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
|
2854
|
+
# time; otherwise, return a 412 (precondition failed) error.
|
1487
2855
|
#
|
1488
|
-
#
|
1489
|
-
#
|
2856
|
+
# If both of the `If-Match` and `If-Unmodified-Since` headers are
|
2857
|
+
# present in the request as follows:
|
1490
2858
|
#
|
1491
|
-
#
|
2859
|
+
# * `If-Match` condition evaluates to `true`, and;
|
2860
|
+
#
|
2861
|
+
# * `If-Unmodified-Since` condition evaluates to `false`;
|
2862
|
+
#
|
2863
|
+
# Then Amazon S3 returns `200 OK` and the data requested.
|
2864
|
+
#
|
2865
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
1492
2866
|
#
|
1493
2867
|
#
|
1494
2868
|
#
|
1495
|
-
# [1]:
|
2869
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
2870
|
+
# @option options [String] :range
|
2871
|
+
# HeadObject returns only the metadata for an object. If the Range is
|
2872
|
+
# satisfiable, only the `ContentLength` is affected in the response. If
|
2873
|
+
# the Range is not satisfiable, S3 returns a `416 - Requested Range Not
|
2874
|
+
# Satisfiable` error.
|
2875
|
+
# @option options [String] :response_cache_control
|
2876
|
+
# Sets the `Cache-Control` header of the response.
|
2877
|
+
# @option options [String] :response_content_disposition
|
2878
|
+
# Sets the `Content-Disposition` header of the response.
|
2879
|
+
# @option options [String] :response_content_encoding
|
2880
|
+
# Sets the `Content-Encoding` header of the response.
|
2881
|
+
# @option options [String] :response_content_language
|
2882
|
+
# Sets the `Content-Language` header of the response.
|
2883
|
+
# @option options [String] :response_content_type
|
2884
|
+
# Sets the `Content-Type` header of the response.
|
2885
|
+
# @option options [Time,DateTime,Date,Integer,String] :response_expires
|
2886
|
+
# Sets the `Expires` header of the response.
|
1496
2887
|
# @option options [String] :version_id
|
1497
|
-
#
|
2888
|
+
# Version ID used to reference a specific version of the object.
|
2889
|
+
#
|
2890
|
+
# <note markdown="1"> For directory buckets in this API operation, only the `null` value of
|
2891
|
+
# the version ID is supported.
|
2892
|
+
#
|
2893
|
+
# </note>
|
1498
2894
|
# @option options [String] :sse_customer_algorithm
|
1499
|
-
# Specifies the algorithm to use
|
2895
|
+
# Specifies the algorithm to use when encrypting the object (for
|
1500
2896
|
# example, AES256).
|
2897
|
+
#
|
2898
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2899
|
+
#
|
2900
|
+
# </note>
|
1501
2901
|
# @option options [String] :sse_customer_key
|
1502
2902
|
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
1503
2903
|
# encrypting data. This value is used to store the object and then it is
|
1504
2904
|
# discarded; Amazon S3 does not store the encryption key. The key must
|
1505
2905
|
# be appropriate for use with the algorithm specified in the
|
1506
2906
|
# `x-amz-server-side-encryption-customer-algorithm` header.
|
2907
|
+
#
|
2908
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2909
|
+
#
|
2910
|
+
# </note>
|
1507
2911
|
# @option options [String] :sse_customer_key_md5
|
1508
2912
|
# Specifies the 128-bit MD5 digest of the encryption key according to
|
1509
2913
|
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
1510
2914
|
# ensure that the encryption key was transmitted without error.
|
2915
|
+
#
|
2916
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2917
|
+
#
|
2918
|
+
# </note>
|
1511
2919
|
# @option options [String] :request_payer
|
1512
2920
|
# Confirms that the requester knows that they will be charged for the
|
1513
2921
|
# request. Bucket owners need not specify this parameter in their
|
1514
|
-
# requests.
|
1515
|
-
#
|
2922
|
+
# requests. If either the source or destination S3 bucket has Requester
|
2923
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
2924
|
+
# the object. For information about downloading objects from Requester
|
2925
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
1516
2926
|
# in the *Amazon S3 User Guide*.
|
1517
2927
|
#
|
2928
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
2929
|
+
#
|
2930
|
+
# </note>
|
2931
|
+
#
|
1518
2932
|
#
|
1519
2933
|
#
|
1520
2934
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
@@ -1524,16 +2938,25 @@ module Aws::S3
|
|
1524
2938
|
# for the part specified. Useful querying about the size of the part and
|
1525
2939
|
# the number of parts in this object.
|
1526
2940
|
# @option options [String] :expected_bucket_owner
|
1527
|
-
# The account ID of the expected bucket owner. If the
|
1528
|
-
#
|
1529
|
-
#
|
2941
|
+
# The account ID of the expected bucket owner. If the account ID that
|
2942
|
+
# you provide does not match the actual owner of the bucket, the request
|
2943
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
2944
|
+
# @option options [String] :checksum_mode
|
2945
|
+
# To retrieve the checksum, this parameter must be enabled.
|
2946
|
+
#
|
2947
|
+
# In addition, if you enable `ChecksumMode` and the object is encrypted
|
2948
|
+
# with Amazon Web Services Key Management Service (Amazon Web Services
|
2949
|
+
# KMS), you must have permission to use the `kms:Decrypt` action for the
|
2950
|
+
# request to succeed.
|
1530
2951
|
# @return [Types::HeadObjectOutput]
|
1531
2952
|
def head(options = {})
|
1532
2953
|
options = options.merge(
|
1533
2954
|
bucket: @bucket_name,
|
1534
2955
|
key: @key
|
1535
2956
|
)
|
1536
|
-
resp =
|
2957
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
2958
|
+
@client.head_object(options)
|
2959
|
+
end
|
1537
2960
|
resp.data
|
1538
2961
|
end
|
1539
2962
|
|
@@ -1650,6 +3073,7 @@ module Aws::S3
|
|
1650
3073
|
# request_payer: "requester", # accepts requester
|
1651
3074
|
# bypass_governance_retention: false,
|
1652
3075
|
# expected_bucket_owner: "AccountId",
|
3076
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
1653
3077
|
# })
|
1654
3078
|
# @param options ({})
|
1655
3079
|
# @option options [String] :mfa
|
@@ -1657,24 +3081,85 @@ module Aws::S3
|
|
1657
3081
|
# space, and the value that is displayed on your authentication device.
|
1658
3082
|
# Required to permanently delete a versioned object if versioning is
|
1659
3083
|
# configured with MFA delete enabled.
|
3084
|
+
#
|
3085
|
+
# When performing the `DeleteObjects` operation on an MFA delete enabled
|
3086
|
+
# bucket, which attempts to delete the specified versioned objects, you
|
3087
|
+
# must include an MFA token. If you don't provide an MFA token, the
|
3088
|
+
# entire request will fail, even if there are non-versioned objects that
|
3089
|
+
# you are trying to delete. If you provide an invalid token, whether
|
3090
|
+
# there are versioned object keys in the request or not, the entire
|
3091
|
+
# Multi-Object Delete request will fail. For information about MFA
|
3092
|
+
# Delete, see [ MFA Delete][1] in the *Amazon S3 User Guide*.
|
3093
|
+
#
|
3094
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
3095
|
+
#
|
3096
|
+
# </note>
|
3097
|
+
#
|
3098
|
+
#
|
3099
|
+
#
|
3100
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html#MultiFactorAuthenticationDelete
|
1660
3101
|
# @option options [String] :request_payer
|
1661
3102
|
# Confirms that the requester knows that they will be charged for the
|
1662
3103
|
# request. Bucket owners need not specify this parameter in their
|
1663
|
-
# requests.
|
1664
|
-
#
|
3104
|
+
# requests. If either the source or destination S3 bucket has Requester
|
3105
|
+
# Pays enabled, the requester will pay for corresponding charges to copy
|
3106
|
+
# the object. For information about downloading objects from Requester
|
3107
|
+
# Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
|
1665
3108
|
# in the *Amazon S3 User Guide*.
|
1666
3109
|
#
|
3110
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
3111
|
+
#
|
3112
|
+
# </note>
|
3113
|
+
#
|
1667
3114
|
#
|
1668
3115
|
#
|
1669
3116
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
1670
3117
|
# @option options [Boolean] :bypass_governance_retention
|
1671
3118
|
# Specifies whether you want to delete this object even if it has a
|
1672
3119
|
# Governance-type Object Lock in place. To use this header, you must
|
1673
|
-
# have the `s3:
|
3120
|
+
# have the `s3:BypassGovernanceRetention` permission.
|
3121
|
+
#
|
3122
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
3123
|
+
#
|
3124
|
+
# </note>
|
1674
3125
|
# @option options [String] :expected_bucket_owner
|
1675
|
-
# The account ID of the expected bucket owner. If the
|
1676
|
-
#
|
1677
|
-
#
|
3126
|
+
# The account ID of the expected bucket owner. If the account ID that
|
3127
|
+
# you provide does not match the actual owner of the bucket, the request
|
3128
|
+
# fails with the HTTP status code `403 Forbidden` (access denied).
|
3129
|
+
# @option options [String] :checksum_algorithm
|
3130
|
+
# Indicates the algorithm used to create the checksum for the object
|
3131
|
+
# when you use the SDK. This header will not provide any additional
|
3132
|
+
# functionality if you don't use the SDK. When you send this header,
|
3133
|
+
# there must be a corresponding `x-amz-checksum-algorithm ` or
|
3134
|
+
# `x-amz-trailer` header sent. Otherwise, Amazon S3 fails the request
|
3135
|
+
# with the HTTP status code `400 Bad Request`.
|
3136
|
+
#
|
3137
|
+
# For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
|
3138
|
+
# the supported algorithm from the following list:
|
3139
|
+
#
|
3140
|
+
# * CRC32
|
3141
|
+
#
|
3142
|
+
# * CRC32C
|
3143
|
+
#
|
3144
|
+
# * SHA1
|
3145
|
+
#
|
3146
|
+
# * SHA256
|
3147
|
+
#
|
3148
|
+
# For more information, see [Checking object integrity][1] in the
|
3149
|
+
# *Amazon S3 User Guide*.
|
3150
|
+
#
|
3151
|
+
# If the individual checksum value you provide through
|
3152
|
+
# `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
|
3153
|
+
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
|
3154
|
+
# provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
|
3155
|
+
# that matches the provided value in `x-amz-checksum-algorithm `.
|
3156
|
+
#
|
3157
|
+
# If you provide an individual checksum, Amazon S3 ignores any provided
|
3158
|
+
# `ChecksumAlgorithm` parameter.
|
3159
|
+
#
|
3160
|
+
#
|
3161
|
+
#
|
3162
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
1678
3163
|
# @return [void]
|
1679
3164
|
def batch_delete!(options = {})
|
1680
3165
|
batch_enum.each do |batch|
|
@@ -1687,7 +3172,9 @@ module Aws::S3
|
|
1687
3172
|
key: item.key
|
1688
3173
|
}
|
1689
3174
|
end
|
1690
|
-
|
3175
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
3176
|
+
batch[0].client.delete_objects(params)
|
3177
|
+
end
|
1691
3178
|
end
|
1692
3179
|
nil
|
1693
3180
|
end
|