aws-sdk-s3 1.142.0 → 1.208.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 +417 -1
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
- data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
- data/lib/aws-sdk-s3/bucket.rb +358 -106
- data/lib/aws-sdk-s3/bucket_acl.rb +10 -9
- data/lib/aws-sdk-s3/bucket_cors.rb +10 -9
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +11 -6
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +64 -7
- data/lib/aws-sdk-s3/bucket_logging.rb +5 -5
- data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
- data/lib/aws-sdk-s3/bucket_policy.rb +14 -13
- data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
- data/lib/aws-sdk-s3/bucket_request_payment.rb +6 -6
- data/lib/aws-sdk-s3/bucket_tagging.rb +7 -7
- data/lib/aws-sdk-s3/bucket_versioning.rb +47 -14
- data/lib/aws-sdk-s3/bucket_website.rb +7 -7
- data/lib/aws-sdk-s3/client.rb +5671 -2195
- data/lib/aws-sdk-s3/client_api.rb +665 -166
- data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
- data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
- data/lib/aws-sdk-s3/customizations/object.rb +87 -91
- data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
- data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
- data/lib/aws-sdk-s3/customizations.rb +28 -36
- data/lib/aws-sdk-s3/default_executor.rb +103 -0
- data/lib/aws-sdk-s3/encryption/client.rb +4 -4
- data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
- data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
- data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +4 -2
- data/lib/aws-sdk-s3/encryptionV2/client.rb +100 -25
- data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
- data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
- data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
- data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
- data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
- data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -2
- data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
- data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
- data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
- data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
- data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
- data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
- data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
- data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
- data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
- data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
- data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
- data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
- data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
- data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
- data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
- data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
- data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
- data/lib/aws-sdk-s3/endpoint_parameters.rb +37 -34
- data/lib/aws-sdk-s3/endpoint_provider.rb +572 -277
- data/lib/aws-sdk-s3/endpoints.rb +566 -1612
- data/lib/aws-sdk-s3/errors.rb +58 -0
- data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
- data/lib/aws-sdk-s3/file_downloader.rb +192 -146
- data/lib/aws-sdk-s3/file_uploader.rb +10 -14
- data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
- data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
- data/lib/aws-sdk-s3/multipart_file_uploader.rb +106 -102
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +99 -108
- data/lib/aws-sdk-s3/multipart_upload.rb +112 -12
- data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
- data/lib/aws-sdk-s3/multipart_upload_part.rb +55 -39
- data/lib/aws-sdk-s3/object.rb +713 -227
- data/lib/aws-sdk-s3/object_acl.rb +15 -9
- data/lib/aws-sdk-s3/object_copier.rb +1 -1
- data/lib/aws-sdk-s3/object_multipart_copier.rb +12 -9
- data/lib/aws-sdk-s3/object_summary.rb +592 -173
- data/lib/aws-sdk-s3/object_version.rb +102 -17
- data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
- data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
- data/lib/aws-sdk-s3/plugins/endpoints.rb +26 -213
- data/lib/aws-sdk-s3/plugins/express_session_auth.rb +19 -21
- data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
- data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
- data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
- data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
- data/lib/aws-sdk-s3/presigner.rb +7 -5
- data/lib/aws-sdk-s3/resource.rb +53 -20
- data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
- data/lib/aws-sdk-s3/types.rb +4738 -1542
- data/lib/aws-sdk-s3.rb +35 -31
- data/sig/bucket.rbs +231 -0
- data/sig/bucket_acl.rbs +78 -0
- data/sig/bucket_cors.rbs +69 -0
- data/sig/bucket_lifecycle.rbs +88 -0
- data/sig/bucket_lifecycle_configuration.rbs +115 -0
- data/sig/bucket_logging.rbs +76 -0
- data/sig/bucket_notification.rbs +114 -0
- data/sig/bucket_policy.rbs +59 -0
- data/sig/bucket_request_payment.rbs +54 -0
- data/sig/bucket_tagging.rbs +65 -0
- data/sig/bucket_versioning.rbs +77 -0
- data/sig/bucket_website.rbs +93 -0
- data/sig/client.rbs +2612 -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 +44 -0
- data/sig/multipart_upload.rbs +120 -0
- data/sig/multipart_upload_part.rbs +109 -0
- data/sig/object.rbs +464 -0
- data/sig/object_acl.rbs +86 -0
- data/sig/object_summary.rbs +347 -0
- data/sig/object_version.rbs +143 -0
- data/sig/resource.rbs +141 -0
- data/sig/types.rbs +2899 -0
- data/sig/waiters.rbs +95 -0
- metadata +58 -13
- data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
- data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
|
@@ -84,6 +84,18 @@ module Aws::S3
|
|
|
84
84
|
data[:checksum_algorithm]
|
|
85
85
|
end
|
|
86
86
|
|
|
87
|
+
# The checksum type that is used to calculate the object’s checksum
|
|
88
|
+
# value. For more information, see [Checking object integrity][1] in the
|
|
89
|
+
# *Amazon S3 User Guide*.
|
|
90
|
+
#
|
|
91
|
+
#
|
|
92
|
+
#
|
|
93
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
94
|
+
# @return [String]
|
|
95
|
+
def checksum_type
|
|
96
|
+
data[:checksum_type]
|
|
97
|
+
end
|
|
98
|
+
|
|
87
99
|
# Size in bytes of the object
|
|
88
100
|
# @return [Integer]
|
|
89
101
|
def size
|
|
@@ -92,8 +104,10 @@ module Aws::S3
|
|
|
92
104
|
|
|
93
105
|
# The class of storage used to store the object.
|
|
94
106
|
#
|
|
95
|
-
# <note markdown="1"> **Directory buckets** -
|
|
96
|
-
#
|
|
107
|
+
# <note markdown="1"> **Directory buckets** - Directory buckets only support
|
|
108
|
+
# `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
|
|
109
|
+
# Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
|
|
110
|
+
# storage class) in Dedicated Local Zones.
|
|
97
111
|
#
|
|
98
112
|
# </note>
|
|
99
113
|
# @return [String]
|
|
@@ -118,9 +132,10 @@ module Aws::S3
|
|
|
118
132
|
# archived objects, see [ Working with archived objects][1] in the
|
|
119
133
|
# *Amazon S3 User Guide*.
|
|
120
134
|
#
|
|
121
|
-
# <note markdown="1"> This functionality is not supported for directory buckets.
|
|
122
|
-
#
|
|
123
|
-
#
|
|
135
|
+
# <note markdown="1"> This functionality is not supported for directory buckets. Directory
|
|
136
|
+
# buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone
|
|
137
|
+
# storage class) in Availability Zones and `ONEZONE_IA` (the S3 One
|
|
138
|
+
# Zone-Infrequent Access storage class) in Dedicated Local Zones.
|
|
124
139
|
#
|
|
125
140
|
# </note>
|
|
126
141
|
#
|
|
@@ -186,7 +201,7 @@ module Aws::S3
|
|
|
186
201
|
options, params = separate_params_and_options(options)
|
|
187
202
|
waiter = Waiters::ObjectExists.new(options)
|
|
188
203
|
yield_waiter_and_warn(waiter, &block) if block_given?
|
|
189
|
-
Aws::Plugins::UserAgent.
|
|
204
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
190
205
|
waiter.wait(params.merge(bucket: @bucket_name,
|
|
191
206
|
key: @key))
|
|
192
207
|
end
|
|
@@ -207,7 +222,7 @@ module Aws::S3
|
|
|
207
222
|
options, params = separate_params_and_options(options)
|
|
208
223
|
waiter = Waiters::ObjectNotExists.new(options)
|
|
209
224
|
yield_waiter_and_warn(waiter, &block) if block_given?
|
|
210
|
-
Aws::Plugins::UserAgent.
|
|
225
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
211
226
|
waiter.wait(params.merge(bucket: @bucket_name,
|
|
212
227
|
key: @key))
|
|
213
228
|
end
|
|
@@ -312,7 +327,7 @@ module Aws::S3
|
|
|
312
327
|
:retry
|
|
313
328
|
end
|
|
314
329
|
end
|
|
315
|
-
Aws::Plugins::UserAgent.
|
|
330
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
316
331
|
Aws::Waiters::Waiter.new(options).wait({})
|
|
317
332
|
end
|
|
318
333
|
end
|
|
@@ -324,7 +339,7 @@ module Aws::S3
|
|
|
324
339
|
# object_summary.copy_from({
|
|
325
340
|
# acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
|
|
326
341
|
# cache_control: "CacheControl",
|
|
327
|
-
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
|
342
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
|
|
328
343
|
# content_disposition: "ContentDisposition",
|
|
329
344
|
# content_encoding: "ContentEncoding",
|
|
330
345
|
# content_language: "ContentLanguage",
|
|
@@ -339,13 +354,15 @@ module Aws::S3
|
|
|
339
354
|
# grant_read: "GrantRead",
|
|
340
355
|
# grant_read_acp: "GrantReadACP",
|
|
341
356
|
# grant_write_acp: "GrantWriteACP",
|
|
357
|
+
# if_match: "IfMatch",
|
|
358
|
+
# if_none_match: "IfNoneMatch",
|
|
342
359
|
# metadata: {
|
|
343
360
|
# "MetadataKey" => "MetadataValue",
|
|
344
361
|
# },
|
|
345
362
|
# metadata_directive: "COPY", # accepts COPY, REPLACE
|
|
346
363
|
# tagging_directive: "COPY", # accepts COPY, REPLACE
|
|
347
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
|
348
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
|
364
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
|
|
365
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
|
|
349
366
|
# website_redirect_location: "WebsiteRedirectLocation",
|
|
350
367
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
|
351
368
|
# sse_customer_key: "SSECustomerKey",
|
|
@@ -595,6 +612,35 @@ module Aws::S3
|
|
|
595
612
|
# * This functionality is not supported for Amazon S3 on Outposts.
|
|
596
613
|
#
|
|
597
614
|
# </note>
|
|
615
|
+
# @option options [String] :if_match
|
|
616
|
+
# Copies the object if the entity tag (ETag) of the destination object
|
|
617
|
+
# matches the specified tag. If the ETag values do not match, the
|
|
618
|
+
# operation returns a `412 Precondition Failed` error. If a concurrent
|
|
619
|
+
# operation occurs during the upload S3 returns a `409
|
|
620
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
|
621
|
+
# fetch the object's ETag and retry the upload.
|
|
622
|
+
#
|
|
623
|
+
# Expects the ETag value as a string.
|
|
624
|
+
#
|
|
625
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
|
626
|
+
#
|
|
627
|
+
#
|
|
628
|
+
#
|
|
629
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
|
630
|
+
# @option options [String] :if_none_match
|
|
631
|
+
# Copies the object only if the object key name at the destination does
|
|
632
|
+
# not already exist in the bucket specified. Otherwise, Amazon S3
|
|
633
|
+
# returns a `412 Precondition Failed` error. If a concurrent operation
|
|
634
|
+
# occurs during the upload S3 returns a `409 ConditionalRequestConflict`
|
|
635
|
+
# response. On a 409 failure you should retry the upload.
|
|
636
|
+
#
|
|
637
|
+
# Expects the '*' (asterisk) character.
|
|
638
|
+
#
|
|
639
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
|
640
|
+
#
|
|
641
|
+
#
|
|
642
|
+
#
|
|
643
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
|
598
644
|
# @option options [Hash<String,String>] :metadata
|
|
599
645
|
# A map of metadata to store with the object in S3.
|
|
600
646
|
# @option options [String] :metadata_directive
|
|
@@ -667,9 +713,8 @@ module Aws::S3
|
|
|
667
713
|
# </note>
|
|
668
714
|
# @option options [String] :server_side_encryption
|
|
669
715
|
# The server-side encryption algorithm used when storing this object in
|
|
670
|
-
# Amazon S3
|
|
671
|
-
#
|
|
672
|
-
# and will receive a `400 Bad Request` response.
|
|
716
|
+
# Amazon S3. Unrecognized or unsupported values won’t write a
|
|
717
|
+
# destination object and will receive a `400 Bad Request` response.
|
|
673
718
|
#
|
|
674
719
|
# Amazon S3 automatically encrypts all new objects that are copied to an
|
|
675
720
|
# S3 bucket. When copying an object, if you don't specify encryption
|
|
@@ -677,35 +722,80 @@ module Aws::S3
|
|
|
677
722
|
# object is set to the default encryption configuration of the
|
|
678
723
|
# destination bucket. By default, all buckets have a base level of
|
|
679
724
|
# encryption configuration that uses server-side encryption with Amazon
|
|
680
|
-
# S3 managed keys (SSE-S3). If the destination bucket has a
|
|
681
|
-
# encryption configuration
|
|
682
|
-
#
|
|
683
|
-
# encryption with Amazon Web Services KMS keys (DSSE-KMS), or
|
|
684
|
-
# server-side encryption with customer-provided encryption keys (SSE-C),
|
|
685
|
-
# Amazon S3 uses the corresponding KMS key, or a customer-provided key
|
|
686
|
-
# to encrypt the target object copy.
|
|
687
|
-
#
|
|
688
|
-
# When you perform a `CopyObject` operation, if you want to use a
|
|
689
|
-
# different type of encryption setting for the target object, you can
|
|
690
|
-
# specify appropriate encryption-related headers to encrypt the target
|
|
691
|
-
# object with an Amazon S3 managed key, a KMS key, or a
|
|
692
|
-
# customer-provided key. If the encryption setting in your request is
|
|
693
|
-
# different from the default encryption configuration of the destination
|
|
694
|
-
# bucket, the encryption setting in your request takes precedence.
|
|
725
|
+
# S3 managed keys (SSE-S3). If the destination bucket has a different
|
|
726
|
+
# default encryption configuration, Amazon S3 uses the corresponding
|
|
727
|
+
# encryption key to encrypt the target object copy.
|
|
695
728
|
#
|
|
696
729
|
# With server-side encryption, Amazon S3 encrypts your data as it writes
|
|
697
730
|
# your data to disks in its data centers and decrypts the data when you
|
|
698
731
|
# access it. For more information about server-side encryption, see
|
|
699
732
|
# [Using Server-Side Encryption][1] in the *Amazon S3 User Guide*.
|
|
700
733
|
#
|
|
701
|
-
# <
|
|
702
|
-
#
|
|
703
|
-
#
|
|
704
|
-
#
|
|
734
|
+
# <b>General purpose buckets </b>
|
|
735
|
+
#
|
|
736
|
+
# * For general purpose buckets, there are the following supported
|
|
737
|
+
# options for server-side encryption: server-side encryption with Key
|
|
738
|
+
# Management Service (KMS) keys (SSE-KMS), dual-layer server-side
|
|
739
|
+
# encryption with Amazon Web Services KMS keys (DSSE-KMS), and
|
|
740
|
+
# server-side encryption with customer-provided encryption keys
|
|
741
|
+
# (SSE-C). Amazon S3 uses the corresponding KMS key, or a
|
|
742
|
+
# customer-provided key to encrypt the target object copy.
|
|
743
|
+
#
|
|
744
|
+
# * When you perform a `CopyObject` operation, if you want to use a
|
|
745
|
+
# different type of encryption setting for the target object, you can
|
|
746
|
+
# specify appropriate encryption-related headers to encrypt the target
|
|
747
|
+
# object with an Amazon S3 managed key, a KMS key, or a
|
|
748
|
+
# customer-provided key. If the encryption setting in your request is
|
|
749
|
+
# different from the default encryption configuration of the
|
|
750
|
+
# destination bucket, the encryption setting in your request takes
|
|
751
|
+
# precedence.
|
|
752
|
+
#
|
|
753
|
+
# <b>Directory buckets </b>
|
|
754
|
+
#
|
|
755
|
+
# * For directory buckets, there are only two supported options for
|
|
756
|
+
# server-side encryption: server-side encryption with Amazon S3
|
|
757
|
+
# managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
|
|
758
|
+
# keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
|
|
759
|
+
# encryption uses the desired encryption configuration and you don't
|
|
760
|
+
# override the bucket default encryption in your `CreateSession`
|
|
761
|
+
# requests or `PUT` object requests. Then, new objects are
|
|
762
|
+
# automatically encrypted with the desired encryption settings. For
|
|
763
|
+
# more information, see [Protecting data with server-side
|
|
764
|
+
# encryption][2] in the *Amazon S3 User Guide*. For more information
|
|
765
|
+
# about the encryption overriding behaviors in directory buckets, see
|
|
766
|
+
# [Specifying server-side encryption with KMS for new object
|
|
767
|
+
# uploads][3].
|
|
768
|
+
#
|
|
769
|
+
# * To encrypt new object copies to a directory bucket with SSE-KMS, we
|
|
770
|
+
# recommend you specify SSE-KMS as the directory bucket's default
|
|
771
|
+
# encryption configuration with a KMS key (specifically, a [customer
|
|
772
|
+
# managed key][4]). The [Amazon Web Services managed key][5]
|
|
773
|
+
# (`aws/s3`) isn't supported. Your SSE-KMS configuration can only
|
|
774
|
+
# support 1 [customer managed key][4] per directory bucket for the
|
|
775
|
+
# lifetime of the bucket. After you specify a customer managed key for
|
|
776
|
+
# SSE-KMS, you can't override the customer managed key for the
|
|
777
|
+
# bucket's SSE-KMS configuration. Then, when you perform a
|
|
778
|
+
# `CopyObject` operation and want to specify server-side encryption
|
|
779
|
+
# settings for new object copies with SSE-KMS in the
|
|
780
|
+
# encryption-related request headers, you must ensure the encryption
|
|
781
|
+
# key is the same customer managed key that you specified for the
|
|
782
|
+
# directory bucket's default encryption configuration.
|
|
783
|
+
#
|
|
784
|
+
# * <b>S3 access points for Amazon FSx </b> - When accessing data stored
|
|
785
|
+
# in Amazon FSx file systems using S3 access points, the only valid
|
|
786
|
+
# server side encryption option is `aws:fsx`. All Amazon FSx file
|
|
787
|
+
# systems have encryption configured by default and are encrypted at
|
|
788
|
+
# rest. Data is automatically encrypted before being written to the
|
|
789
|
+
# file system, and automatically decrypted as it is read. These
|
|
790
|
+
# processes are handled transparently by Amazon FSx.
|
|
705
791
|
#
|
|
706
792
|
#
|
|
707
793
|
#
|
|
708
794
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
|
|
795
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
|
796
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
|
797
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
|
798
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
|
709
799
|
# @option options [String] :storage_class
|
|
710
800
|
# If the `x-amz-storage-class` header is not used, the copied object
|
|
711
801
|
# will be stored in the `STANDARD` Storage Class by default. The
|
|
@@ -713,10 +803,12 @@ module Aws::S3
|
|
|
713
803
|
# availability. Depending on performance needs, you can specify a
|
|
714
804
|
# different Storage Class.
|
|
715
805
|
#
|
|
716
|
-
# <note markdown="1"> * <b>Directory buckets </b> -
|
|
717
|
-
# Express One Zone storage class
|
|
718
|
-
#
|
|
719
|
-
#
|
|
806
|
+
# <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
|
|
807
|
+
# `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
|
|
808
|
+
# Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
|
|
809
|
+
# Access storage class) in Dedicated Local Zones. Unsupported storage
|
|
810
|
+
# class values won't write a destination object and will respond with
|
|
811
|
+
# the HTTP status code `400 Bad Request`.
|
|
720
812
|
#
|
|
721
813
|
# * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
|
|
722
814
|
# `OUTPOSTS` Storage Class.
|
|
@@ -796,32 +888,52 @@ module Aws::S3
|
|
|
796
888
|
#
|
|
797
889
|
# </note>
|
|
798
890
|
# @option options [String] :ssekms_key_id
|
|
799
|
-
# Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for
|
|
800
|
-
# encryption. All GET and PUT requests for an object protected by
|
|
801
|
-
# will fail if they're not made via SSL or using SigV4. For
|
|
802
|
-
# about configuring any of the officially supported Amazon
|
|
803
|
-
# SDKs and Amazon Web Services CLI, see [Specifying the
|
|
804
|
-
# Version in Request Authentication][1] in the *Amazon S3 User
|
|
805
|
-
#
|
|
806
|
-
#
|
|
807
|
-
#
|
|
808
|
-
#
|
|
809
|
-
#
|
|
891
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
|
892
|
+
# object encryption. All GET and PUT requests for an object protected by
|
|
893
|
+
# KMS will fail if they're not made via SSL or using SigV4. For
|
|
894
|
+
# information about configuring any of the officially supported Amazon
|
|
895
|
+
# Web Services SDKs and Amazon Web Services CLI, see [Specifying the
|
|
896
|
+
# Signature Version in Request Authentication][1] in the *Amazon S3 User
|
|
897
|
+
# Guide*.
|
|
898
|
+
#
|
|
899
|
+
# **Directory buckets** - To encrypt data using SSE-KMS, it's
|
|
900
|
+
# recommended to specify the `x-amz-server-side-encryption` header to
|
|
901
|
+
# `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
|
|
902
|
+
# header implicitly uses the bucket's default KMS customer managed key
|
|
903
|
+
# ID. If you want to explicitly set the `
|
|
904
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
|
|
905
|
+
# bucket's default customer managed key (using key ID or ARN, not
|
|
906
|
+
# alias). Your SSE-KMS configuration can only support 1 [customer
|
|
907
|
+
# managed key][2] per directory bucket's lifetime. The [Amazon Web
|
|
908
|
+
# Services managed key][3] (`aws/s3`) isn't supported. Incorrect key
|
|
909
|
+
# specification results in an HTTP `400 Bad Request` error.
|
|
810
910
|
#
|
|
811
911
|
#
|
|
812
912
|
#
|
|
813
913
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
|
|
914
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
|
915
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
|
814
916
|
# @option options [String] :ssekms_encryption_context
|
|
815
|
-
# Specifies the Amazon Web Services KMS Encryption Context
|
|
816
|
-
#
|
|
817
|
-
#
|
|
818
|
-
#
|
|
819
|
-
# `CopyObject` requests.
|
|
917
|
+
# Specifies the Amazon Web Services KMS Encryption Context as an
|
|
918
|
+
# additional encryption context to use for the destination object
|
|
919
|
+
# encryption. The value of this header is a base64-encoded UTF-8 string
|
|
920
|
+
# holding JSON with the encryption context key-value pairs.
|
|
820
921
|
#
|
|
821
|
-
#
|
|
822
|
-
#
|
|
922
|
+
# **General purpose buckets** - This value must be explicitly added to
|
|
923
|
+
# specify encryption context for `CopyObject` requests if you want an
|
|
924
|
+
# additional encryption context for your destination object. The
|
|
925
|
+
# additional encryption context of the source object won't be copied to
|
|
926
|
+
# the destination object. For more information, see [Encryption
|
|
927
|
+
# context][1] in the *Amazon S3 User Guide*.
|
|
823
928
|
#
|
|
824
|
-
#
|
|
929
|
+
# **Directory buckets** - You can optionally provide an explicit
|
|
930
|
+
# encryption context value. The value must match the default encryption
|
|
931
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
|
932
|
+
# encryption context value is not supported.
|
|
933
|
+
#
|
|
934
|
+
#
|
|
935
|
+
#
|
|
936
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
|
|
825
937
|
# @option options [Boolean] :bucket_key_enabled
|
|
826
938
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
|
827
939
|
# encryption with server-side encryption using Key Management Service
|
|
@@ -835,14 +947,19 @@ module Aws::S3
|
|
|
835
947
|
# For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon S3
|
|
836
948
|
# User Guide*.
|
|
837
949
|
#
|
|
838
|
-
# <note markdown="1">
|
|
839
|
-
#
|
|
950
|
+
# <note markdown="1"> **Directory buckets** - S3 Bucket Keys aren't supported, when you
|
|
951
|
+
# copy SSE-KMS encrypted objects from general purpose buckets to
|
|
952
|
+
# directory buckets, from directory buckets to general purpose buckets,
|
|
953
|
+
# or between directory buckets, through [CopyObject][2]. In this case,
|
|
954
|
+
# Amazon S3 makes a call to KMS every time a copy request is made for a
|
|
955
|
+
# KMS-encrypted object.
|
|
840
956
|
#
|
|
841
957
|
# </note>
|
|
842
958
|
#
|
|
843
959
|
#
|
|
844
960
|
#
|
|
845
961
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
|
|
962
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
|
846
963
|
# @option options [String] :copy_source_sse_customer_algorithm
|
|
847
964
|
# Specifies the algorithm to use when decrypting the source object (for
|
|
848
965
|
# example, `AES256`).
|
|
@@ -982,7 +1099,7 @@ module Aws::S3
|
|
|
982
1099
|
bucket: @bucket_name,
|
|
983
1100
|
key: @key
|
|
984
1101
|
)
|
|
985
|
-
resp = Aws::Plugins::UserAgent.
|
|
1102
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
986
1103
|
@client.copy_object(options)
|
|
987
1104
|
end
|
|
988
1105
|
resp.data
|
|
@@ -996,6 +1113,9 @@ module Aws::S3
|
|
|
996
1113
|
# request_payer: "requester", # accepts requester
|
|
997
1114
|
# bypass_governance_retention: false,
|
|
998
1115
|
# expected_bucket_owner: "AccountId",
|
|
1116
|
+
# if_match: "IfMatch",
|
|
1117
|
+
# if_match_last_modified_time: Time.now,
|
|
1118
|
+
# if_match_size: 1,
|
|
999
1119
|
# })
|
|
1000
1120
|
# @param [Hash] options ({})
|
|
1001
1121
|
# @option options [String] :mfa
|
|
@@ -1042,13 +1162,51 @@ module Aws::S3
|
|
|
1042
1162
|
# The account ID of the expected bucket owner. If the account ID that
|
|
1043
1163
|
# you provide does not match the actual owner of the bucket, the request
|
|
1044
1164
|
# fails with the HTTP status code `403 Forbidden` (access denied).
|
|
1165
|
+
# @option options [String] :if_match
|
|
1166
|
+
# Deletes the object if the ETag (entity tag) value provided during the
|
|
1167
|
+
# delete operation matches the ETag of the object in S3. If the ETag
|
|
1168
|
+
# values do not match, the operation returns a `412 Precondition Failed`
|
|
1169
|
+
# error.
|
|
1170
|
+
#
|
|
1171
|
+
# Expects the ETag value as a string. `If-Match` does accept a string
|
|
1172
|
+
# value of an '*' (asterisk) character to denote a match of any ETag.
|
|
1173
|
+
#
|
|
1174
|
+
# For more information about conditional requests, see [RFC 7232][1].
|
|
1175
|
+
#
|
|
1176
|
+
#
|
|
1177
|
+
#
|
|
1178
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
|
1179
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
|
|
1180
|
+
# If present, the object is deleted only if its modification times
|
|
1181
|
+
# matches the provided `Timestamp`. If the `Timestamp` values do not
|
|
1182
|
+
# match, the operation returns a `412 Precondition Failed` error. If the
|
|
1183
|
+
# `Timestamp` matches or if the object doesn’t exist, the operation
|
|
1184
|
+
# returns a `204 Success (No Content)` response.
|
|
1185
|
+
#
|
|
1186
|
+
# <note markdown="1"> This functionality is only supported for directory buckets.
|
|
1187
|
+
#
|
|
1188
|
+
# </note>
|
|
1189
|
+
# @option options [Integer] :if_match_size
|
|
1190
|
+
# If present, the object is deleted only if its size matches the
|
|
1191
|
+
# provided size in bytes. If the `Size` value does not match, the
|
|
1192
|
+
# operation returns a `412 Precondition Failed` error. If the `Size`
|
|
1193
|
+
# matches or if the object doesn’t exist, the operation returns a `204
|
|
1194
|
+
# Success (No Content)` response.
|
|
1195
|
+
#
|
|
1196
|
+
# <note markdown="1"> This functionality is only supported for directory buckets.
|
|
1197
|
+
#
|
|
1198
|
+
# </note>
|
|
1199
|
+
#
|
|
1200
|
+
# You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
|
|
1201
|
+
# `x-amz-if-match-size` conditional headers in conjunction with
|
|
1202
|
+
# each-other or individually.
|
|
1045
1203
|
# @return [Types::DeleteObjectOutput]
|
|
1046
1204
|
def delete(options = {})
|
|
1047
1205
|
options = options.merge(
|
|
1048
1206
|
bucket: @bucket_name,
|
|
1049
1207
|
key: @key
|
|
1050
1208
|
)
|
|
1051
|
-
resp = Aws::Plugins::UserAgent.
|
|
1209
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
1052
1210
|
@client.delete_object(options)
|
|
1053
1211
|
end
|
|
1054
1212
|
resp.data
|
|
@@ -1304,7 +1462,7 @@ module Aws::S3
|
|
|
1304
1462
|
bucket: @bucket_name,
|
|
1305
1463
|
key: @key
|
|
1306
1464
|
)
|
|
1307
|
-
resp = Aws::Plugins::UserAgent.
|
|
1465
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
1308
1466
|
@client.get_object(options, &block)
|
|
1309
1467
|
end
|
|
1310
1468
|
resp.data
|
|
@@ -1327,8 +1485,8 @@ module Aws::S3
|
|
|
1327
1485
|
# metadata: {
|
|
1328
1486
|
# "MetadataKey" => "MetadataValue",
|
|
1329
1487
|
# },
|
|
1330
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
|
1331
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
|
1488
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
|
|
1489
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
|
|
1332
1490
|
# website_redirect_location: "WebsiteRedirectLocation",
|
|
1333
1491
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
|
1334
1492
|
# sse_customer_key: "SSECustomerKey",
|
|
@@ -1342,7 +1500,8 @@ module Aws::S3
|
|
|
1342
1500
|
# object_lock_retain_until_date: Time.now,
|
|
1343
1501
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
|
1344
1502
|
# expected_bucket_owner: "AccountId",
|
|
1345
|
-
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
|
1503
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
|
|
1504
|
+
# checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
|
|
1346
1505
|
# })
|
|
1347
1506
|
# @param [Hash] options ({})
|
|
1348
1507
|
# @option options [String] :acl
|
|
@@ -1644,12 +1803,62 @@ module Aws::S3
|
|
|
1644
1803
|
# A map of metadata to store with the object in S3.
|
|
1645
1804
|
# @option options [String] :server_side_encryption
|
|
1646
1805
|
# The server-side encryption algorithm used when you store this object
|
|
1647
|
-
# in Amazon S3
|
|
1806
|
+
# in Amazon S3 or Amazon FSx.
|
|
1807
|
+
#
|
|
1808
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
|
1809
|
+
# two supported options for server-side encryption: server-side
|
|
1810
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
|
1811
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
|
1812
|
+
# recommend that the bucket's default encryption uses the desired
|
|
1813
|
+
# encryption configuration and you don't override the bucket default
|
|
1814
|
+
# encryption in your `CreateSession` requests or `PUT` object
|
|
1815
|
+
# requests. Then, new objects are automatically encrypted with the
|
|
1816
|
+
# desired encryption settings. For more information, see [Protecting
|
|
1817
|
+
# data with server-side encryption][1] in the *Amazon S3 User Guide*.
|
|
1818
|
+
# For more information about the encryption overriding behaviors in
|
|
1819
|
+
# directory buckets, see [Specifying server-side encryption with KMS
|
|
1820
|
+
# for new object uploads][2].
|
|
1821
|
+
#
|
|
1822
|
+
# In the Zonal endpoint API calls (except [CopyObject][3] and
|
|
1823
|
+
# [UploadPartCopy][4]) using the REST API, the encryption request
|
|
1824
|
+
# headers must match the encryption settings that are specified in the
|
|
1825
|
+
# `CreateSession` request. You can't override the values of the
|
|
1826
|
+
# encryption settings (`x-amz-server-side-encryption`,
|
|
1827
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
|
1828
|
+
# `x-amz-server-side-encryption-context`, and
|
|
1829
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) that are
|
|
1830
|
+
# specified in the `CreateSession` request. You don't need to
|
|
1831
|
+
# explicitly specify these encryption settings values in Zonal
|
|
1832
|
+
# endpoint API calls, and Amazon S3 will use the encryption settings
|
|
1833
|
+
# values from the `CreateSession` request to protect new objects in
|
|
1834
|
+
# the directory bucket.
|
|
1835
|
+
#
|
|
1836
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
|
1837
|
+
# `CreateSession`, the session token refreshes automatically to avoid
|
|
1838
|
+
# service interruptions when a session expires. The CLI or the Amazon
|
|
1839
|
+
# Web Services SDKs use the bucket's default encryption configuration
|
|
1840
|
+
# for the `CreateSession` request. It's not supported to override the
|
|
1841
|
+
# encryption settings values in the `CreateSession` request. So in the
|
|
1842
|
+
# Zonal endpoint API calls (except [CopyObject][3] and
|
|
1843
|
+
# [UploadPartCopy][4]), the encryption request headers must match the
|
|
1844
|
+
# default encryption configuration of the directory bucket.
|
|
1648
1845
|
#
|
|
1649
|
-
#
|
|
1650
|
-
# managed keys (SSE-S3) (`AES256`) is supported.
|
|
1846
|
+
# </note>
|
|
1651
1847
|
#
|
|
1652
|
-
#
|
|
1848
|
+
# * <b>S3 access points for Amazon FSx </b> - When accessing data stored
|
|
1849
|
+
# in Amazon FSx file systems using S3 access points, the only valid
|
|
1850
|
+
# server side encryption option is `aws:fsx`. All Amazon FSx file
|
|
1851
|
+
# systems have encryption configured by default and are encrypted at
|
|
1852
|
+
# rest. Data is automatically encrypted before being written to the
|
|
1853
|
+
# file system, and automatically decrypted as it is read. These
|
|
1854
|
+
# processes are handled transparently by Amazon FSx.
|
|
1855
|
+
#
|
|
1856
|
+
#
|
|
1857
|
+
#
|
|
1858
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
|
1859
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
|
1860
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
|
1861
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
|
1653
1862
|
# @option options [String] :storage_class
|
|
1654
1863
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
|
1655
1864
|
# created objects. The STANDARD storage class provides high durability
|
|
@@ -1657,8 +1866,9 @@ module Aws::S3
|
|
|
1657
1866
|
# a different Storage Class. For more information, see [Storage
|
|
1658
1867
|
# Classes][1] in the *Amazon S3 User Guide*.
|
|
1659
1868
|
#
|
|
1660
|
-
# <note markdown="1"> *
|
|
1661
|
-
#
|
|
1869
|
+
# <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
|
|
1870
|
+
# Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
|
|
1871
|
+
# One Zone-Infrequent Access storage class) in Dedicated Local Zones.
|
|
1662
1872
|
#
|
|
1663
1873
|
# * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
|
|
1664
1874
|
#
|
|
@@ -1702,32 +1912,71 @@ module Aws::S3
|
|
|
1702
1912
|
#
|
|
1703
1913
|
# </note>
|
|
1704
1914
|
# @option options [String] :ssekms_key_id
|
|
1705
|
-
# Specifies the ID (Key ID, Key ARN, or Key Alias)
|
|
1706
|
-
# encryption
|
|
1707
|
-
#
|
|
1708
|
-
#
|
|
1709
|
-
#
|
|
1710
|
-
#
|
|
1915
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
|
1916
|
+
# object encryption. If the KMS key doesn't exist in the same account
|
|
1917
|
+
# that's issuing the command, you must use the full Key ARN not the Key
|
|
1918
|
+
# ID.
|
|
1919
|
+
#
|
|
1920
|
+
# **General purpose buckets** - If you specify
|
|
1921
|
+
# `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
|
|
1922
|
+
# header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
|
|
1923
|
+
# to use. If you specify `x-amz-server-side-encryption:aws:kms` or
|
|
1924
|
+
# `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
|
|
1925
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
|
|
1926
|
+
# Amazon Web Services managed key (`aws/s3`) to protect the data.
|
|
1927
|
+
#
|
|
1928
|
+
# **Directory buckets** - To encrypt data using SSE-KMS, it's
|
|
1929
|
+
# recommended to specify the `x-amz-server-side-encryption` header to
|
|
1930
|
+
# `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
|
|
1931
|
+
# header implicitly uses the bucket's default KMS customer managed key
|
|
1932
|
+
# ID. If you want to explicitly set the `
|
|
1933
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
|
|
1934
|
+
# bucket's default customer managed key (using key ID or ARN, not
|
|
1935
|
+
# alias). Your SSE-KMS configuration can only support 1 [customer
|
|
1936
|
+
# managed key][1] per directory bucket's lifetime. The [Amazon Web
|
|
1937
|
+
# Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
|
|
1938
|
+
# specification results in an HTTP `400 Bad Request` error.
|
|
1939
|
+
#
|
|
1940
|
+
#
|
|
1941
|
+
#
|
|
1942
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
|
1943
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
|
1711
1944
|
# @option options [String] :ssekms_encryption_context
|
|
1712
1945
|
# Specifies the Amazon Web Services KMS Encryption Context to use for
|
|
1713
|
-
# object encryption. The value of this header is a
|
|
1714
|
-
#
|
|
1715
|
-
#
|
|
1716
|
-
#
|
|
1717
|
-
#
|
|
1718
|
-
#
|
|
1946
|
+
# object encryption. The value of this header is a Base64 encoded string
|
|
1947
|
+
# of a UTF-8 encoded JSON, which contains the encryption context as
|
|
1948
|
+
# key-value pairs.
|
|
1949
|
+
#
|
|
1950
|
+
# **Directory buckets** - You can optionally provide an explicit
|
|
1951
|
+
# encryption context value. The value must match the default encryption
|
|
1952
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
|
1953
|
+
# encryption context value is not supported.
|
|
1719
1954
|
# @option options [Boolean] :bucket_key_enabled
|
|
1720
1955
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
|
1721
1956
|
# encryption with server-side encryption using Key Management Service
|
|
1722
|
-
# (KMS) keys (SSE-KMS).
|
|
1723
|
-
# to use an S3 Bucket Key for object encryption with SSE-KMS.
|
|
1957
|
+
# (KMS) keys (SSE-KMS).
|
|
1724
1958
|
#
|
|
1725
|
-
#
|
|
1959
|
+
# **General purpose buckets** - Setting this header to `true` causes
|
|
1960
|
+
# Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
|
|
1961
|
+
# Also, specifying this header with a PUT action doesn't affect
|
|
1726
1962
|
# bucket-level settings for S3 Bucket Key.
|
|
1727
1963
|
#
|
|
1728
|
-
#
|
|
1964
|
+
# **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
|
|
1965
|
+
# and `PUT` operations in a directory bucket and can’t be disabled. S3
|
|
1966
|
+
# Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
|
|
1967
|
+
# from general purpose buckets to directory buckets, from directory
|
|
1968
|
+
# buckets to general purpose buckets, or between directory buckets,
|
|
1969
|
+
# through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
|
|
1970
|
+
# Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
|
|
1971
|
+
# makes a call to KMS every time a copy request is made for a
|
|
1972
|
+
# KMS-encrypted object.
|
|
1729
1973
|
#
|
|
1730
|
-
#
|
|
1974
|
+
#
|
|
1975
|
+
#
|
|
1976
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
|
1977
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
|
1978
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
|
1979
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
|
1731
1980
|
# @option options [String] :request_payer
|
|
1732
1981
|
# Confirms that the requester knows that they will be charged for the
|
|
1733
1982
|
# request. Bucket owners need not specify this parameter in their
|
|
@@ -1783,13 +2032,21 @@ module Aws::S3
|
|
|
1783
2032
|
#
|
|
1784
2033
|
#
|
|
1785
2034
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
2035
|
+
# @option options [String] :checksum_type
|
|
2036
|
+
# Indicates the checksum type that you want Amazon S3 to use to
|
|
2037
|
+
# calculate the object’s checksum value. For more information, see
|
|
2038
|
+
# [Checking object integrity in the Amazon S3 User Guide][1].
|
|
2039
|
+
#
|
|
2040
|
+
#
|
|
2041
|
+
#
|
|
2042
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
1786
2043
|
# @return [MultipartUpload]
|
|
1787
2044
|
def initiate_multipart_upload(options = {})
|
|
1788
2045
|
options = options.merge(
|
|
1789
2046
|
bucket: @bucket_name,
|
|
1790
2047
|
key: @key
|
|
1791
2048
|
)
|
|
1792
|
-
resp = Aws::Plugins::UserAgent.
|
|
2049
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
1793
2050
|
@client.create_multipart_upload(options)
|
|
1794
2051
|
end
|
|
1795
2052
|
MultipartUpload.new(
|
|
@@ -1812,21 +2069,25 @@ module Aws::S3
|
|
|
1812
2069
|
# content_length: 1,
|
|
1813
2070
|
# content_md5: "ContentMD5",
|
|
1814
2071
|
# content_type: "ContentType",
|
|
1815
|
-
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
|
2072
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
|
|
1816
2073
|
# checksum_crc32: "ChecksumCRC32",
|
|
1817
2074
|
# checksum_crc32c: "ChecksumCRC32C",
|
|
2075
|
+
# checksum_crc64nvme: "ChecksumCRC64NVME",
|
|
1818
2076
|
# checksum_sha1: "ChecksumSHA1",
|
|
1819
2077
|
# checksum_sha256: "ChecksumSHA256",
|
|
1820
2078
|
# expires: Time.now,
|
|
2079
|
+
# if_match: "IfMatch",
|
|
2080
|
+
# if_none_match: "IfNoneMatch",
|
|
1821
2081
|
# grant_full_control: "GrantFullControl",
|
|
1822
2082
|
# grant_read: "GrantRead",
|
|
1823
2083
|
# grant_read_acp: "GrantReadACP",
|
|
1824
2084
|
# grant_write_acp: "GrantWriteACP",
|
|
2085
|
+
# write_offset_bytes: 1,
|
|
1825
2086
|
# metadata: {
|
|
1826
2087
|
# "MetadataKey" => "MetadataValue",
|
|
1827
2088
|
# },
|
|
1828
|
-
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
|
1829
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
|
2089
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
|
|
2090
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
|
|
1830
2091
|
# website_redirect_location: "WebsiteRedirectLocation",
|
|
1831
2092
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
|
1832
2093
|
# sse_customer_key: "SSECustomerKey",
|
|
@@ -1917,7 +2178,7 @@ module Aws::S3
|
|
|
1917
2178
|
#
|
|
1918
2179
|
# [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
|
|
1919
2180
|
# @option options [String] :content_md5
|
|
1920
|
-
# The
|
|
2181
|
+
# The Base64 encoded 128-bit `MD5` digest of the message (without the
|
|
1921
2182
|
# headers) according to RFC 1864. This header can be used as a message
|
|
1922
2183
|
# integrity check to verify that the data is the same data that was
|
|
1923
2184
|
# originally sent. Although it is optional, we recommend using the
|
|
@@ -1925,10 +2186,11 @@ module Aws::S3
|
|
|
1925
2186
|
# information about REST request authentication, see [REST
|
|
1926
2187
|
# Authentication][1].
|
|
1927
2188
|
#
|
|
1928
|
-
# <note markdown="1"> The `Content-MD5` header is required
|
|
1929
|
-
# object with a retention period configured
|
|
1930
|
-
#
|
|
1931
|
-
# Object Lock
|
|
2189
|
+
# <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
|
|
2190
|
+
# for any request to upload an object with a retention period configured
|
|
2191
|
+
# using Amazon S3 Object Lock. For more information, see [Uploading
|
|
2192
|
+
# objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
|
|
2193
|
+
# Guide*.
|
|
1932
2194
|
#
|
|
1933
2195
|
# </note>
|
|
1934
2196
|
#
|
|
@@ -1939,7 +2201,7 @@ module Aws::S3
|
|
|
1939
2201
|
#
|
|
1940
2202
|
#
|
|
1941
2203
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
|
|
1942
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/
|
|
2204
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
|
|
1943
2205
|
# @option options [String] :content_type
|
|
1944
2206
|
# A standard MIME type describing the format of the contents. For more
|
|
1945
2207
|
# information, see
|
|
@@ -1959,37 +2221,45 @@ module Aws::S3
|
|
|
1959
2221
|
# For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
|
|
1960
2222
|
# the supported algorithm from the following list:
|
|
1961
2223
|
#
|
|
1962
|
-
# * CRC32
|
|
2224
|
+
# * `CRC32`
|
|
2225
|
+
#
|
|
2226
|
+
# * `CRC32C`
|
|
1963
2227
|
#
|
|
1964
|
-
# *
|
|
2228
|
+
# * `CRC64NVME`
|
|
1965
2229
|
#
|
|
1966
|
-
# * SHA1
|
|
2230
|
+
# * `SHA1`
|
|
1967
2231
|
#
|
|
1968
|
-
# * SHA256
|
|
2232
|
+
# * `SHA256`
|
|
1969
2233
|
#
|
|
1970
2234
|
# For more information, see [Checking object integrity][1] in the
|
|
1971
2235
|
# *Amazon S3 User Guide*.
|
|
1972
2236
|
#
|
|
1973
2237
|
# If the individual checksum value you provide through
|
|
1974
2238
|
# `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
|
|
1975
|
-
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3
|
|
1976
|
-
#
|
|
1977
|
-
# that matches the provided value in `x-amz-checksum-algorithm `.
|
|
2239
|
+
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
|
|
2240
|
+
# request with a `BadDigest` error.
|
|
1978
2241
|
#
|
|
1979
|
-
# <note markdown="1">
|
|
1980
|
-
#
|
|
2242
|
+
# <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
|
|
2243
|
+
# for any request to upload an object with a retention period configured
|
|
2244
|
+
# using Amazon S3 Object Lock. For more information, see [Uploading
|
|
2245
|
+
# objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
|
|
2246
|
+
# Guide*.
|
|
1981
2247
|
#
|
|
1982
2248
|
# </note>
|
|
1983
2249
|
#
|
|
2250
|
+
# For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
|
|
2251
|
+
# is the default checksum algorithm that's used for performance.
|
|
2252
|
+
#
|
|
1984
2253
|
#
|
|
1985
2254
|
#
|
|
1986
2255
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
2256
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
|
|
1987
2257
|
# @option options [String] :checksum_crc32
|
|
1988
2258
|
# This header can be used as a data integrity check to verify that the
|
|
1989
2259
|
# data received is the same data that was originally sent. This header
|
|
1990
|
-
# specifies the
|
|
1991
|
-
# more information, see [Checking object integrity][1] in the
|
|
1992
|
-
# User Guide*.
|
|
2260
|
+
# specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
|
|
2261
|
+
# For more information, see [Checking object integrity][1] in the
|
|
2262
|
+
# *Amazon S3 User Guide*.
|
|
1993
2263
|
#
|
|
1994
2264
|
#
|
|
1995
2265
|
#
|
|
@@ -1997,17 +2267,28 @@ module Aws::S3
|
|
|
1997
2267
|
# @option options [String] :checksum_crc32c
|
|
1998
2268
|
# This header can be used as a data integrity check to verify that the
|
|
1999
2269
|
# data received is the same data that was originally sent. This header
|
|
2000
|
-
# specifies the
|
|
2270
|
+
# specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
|
|
2001
2271
|
# For more information, see [Checking object integrity][1] in the
|
|
2002
2272
|
# *Amazon S3 User Guide*.
|
|
2003
2273
|
#
|
|
2004
2274
|
#
|
|
2005
2275
|
#
|
|
2006
2276
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
2277
|
+
# @option options [String] :checksum_crc64nvme
|
|
2278
|
+
# This header can be used as a data integrity check to verify that the
|
|
2279
|
+
# data received is the same data that was originally sent. This header
|
|
2280
|
+
# specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
|
|
2281
|
+
# object. The `CRC64NVME` checksum is always a full object checksum. For
|
|
2282
|
+
# more information, see [Checking object integrity in the Amazon S3 User
|
|
2283
|
+
# Guide][1].
|
|
2284
|
+
#
|
|
2285
|
+
#
|
|
2286
|
+
#
|
|
2287
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
|
2007
2288
|
# @option options [String] :checksum_sha1
|
|
2008
2289
|
# This header can be used as a data integrity check to verify that the
|
|
2009
2290
|
# data received is the same data that was originally sent. This header
|
|
2010
|
-
# specifies the
|
|
2291
|
+
# specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
|
|
2011
2292
|
# more information, see [Checking object integrity][1] in the *Amazon S3
|
|
2012
2293
|
# User Guide*.
|
|
2013
2294
|
#
|
|
@@ -2017,7 +2298,7 @@ module Aws::S3
|
|
|
2017
2298
|
# @option options [String] :checksum_sha256
|
|
2018
2299
|
# This header can be used as a data integrity check to verify that the
|
|
2019
2300
|
# data received is the same data that was originally sent. This header
|
|
2020
|
-
# specifies the
|
|
2301
|
+
# specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
|
|
2021
2302
|
# For more information, see [Checking object integrity][1] in the
|
|
2022
2303
|
# *Amazon S3 User Guide*.
|
|
2023
2304
|
#
|
|
@@ -2032,6 +2313,43 @@ module Aws::S3
|
|
|
2032
2313
|
#
|
|
2033
2314
|
#
|
|
2034
2315
|
# [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
|
|
2316
|
+
# @option options [String] :if_match
|
|
2317
|
+
# Uploads the object only if the ETag (entity tag) value provided during
|
|
2318
|
+
# the WRITE operation matches the ETag of the object in S3. If the ETag
|
|
2319
|
+
# values do not match, the operation returns a `412 Precondition Failed`
|
|
2320
|
+
# error.
|
|
2321
|
+
#
|
|
2322
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
|
2323
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
|
2324
|
+
# fetch the object's ETag and retry the upload.
|
|
2325
|
+
#
|
|
2326
|
+
# Expects the ETag value as a string.
|
|
2327
|
+
#
|
|
2328
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
|
2329
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
|
2330
|
+
#
|
|
2331
|
+
#
|
|
2332
|
+
#
|
|
2333
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
|
2334
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
|
2335
|
+
# @option options [String] :if_none_match
|
|
2336
|
+
# Uploads the object only if the object key name does not already exist
|
|
2337
|
+
# in the bucket specified. Otherwise, Amazon S3 returns a `412
|
|
2338
|
+
# Precondition Failed` error.
|
|
2339
|
+
#
|
|
2340
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
|
2341
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
|
2342
|
+
# retry the upload.
|
|
2343
|
+
#
|
|
2344
|
+
# Expects the '*' (asterisk) character.
|
|
2345
|
+
#
|
|
2346
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
|
2347
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
|
2348
|
+
#
|
|
2349
|
+
#
|
|
2350
|
+
#
|
|
2351
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
|
2352
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
|
2035
2353
|
# @option options [String] :grant_full_control
|
|
2036
2354
|
# Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
|
|
2037
2355
|
# object.
|
|
@@ -2065,32 +2383,89 @@ module Aws::S3
|
|
|
2065
2383
|
# * This functionality is not supported for Amazon S3 on Outposts.
|
|
2066
2384
|
#
|
|
2067
2385
|
# </note>
|
|
2386
|
+
# @option options [Integer] :write_offset_bytes
|
|
2387
|
+
# Specifies the offset for appending data to existing objects in bytes.
|
|
2388
|
+
# The offset must be equal to the size of the existing object being
|
|
2389
|
+
# appended to. If no object exists, setting this header to 0 will create
|
|
2390
|
+
# a new object.
|
|
2391
|
+
#
|
|
2392
|
+
# <note markdown="1"> This functionality is only supported for objects in the Amazon S3
|
|
2393
|
+
# Express One Zone storage class in directory buckets.
|
|
2394
|
+
#
|
|
2395
|
+
# </note>
|
|
2068
2396
|
# @option options [Hash<String,String>] :metadata
|
|
2069
2397
|
# A map of metadata to store with the object in S3.
|
|
2070
2398
|
# @option options [String] :server_side_encryption
|
|
2071
2399
|
# The server-side encryption algorithm that was used when you store this
|
|
2072
|
-
# object in Amazon S3
|
|
2073
|
-
#
|
|
2074
|
-
#
|
|
2075
|
-
#
|
|
2076
|
-
#
|
|
2077
|
-
#
|
|
2078
|
-
#
|
|
2079
|
-
#
|
|
2080
|
-
#
|
|
2081
|
-
#
|
|
2082
|
-
#
|
|
2083
|
-
#
|
|
2084
|
-
#
|
|
2085
|
-
#
|
|
2400
|
+
# object in Amazon S3 or Amazon FSx.
|
|
2401
|
+
#
|
|
2402
|
+
# * <b>General purpose buckets </b> - You have four mutually exclusive
|
|
2403
|
+
# options to protect data using server-side encryption in Amazon S3,
|
|
2404
|
+
# depending on how you choose to manage the encryption keys.
|
|
2405
|
+
# Specifically, the encryption key options are Amazon S3 managed keys
|
|
2406
|
+
# (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
|
|
2407
|
+
# customer-provided keys (SSE-C). Amazon S3 encrypts data with
|
|
2408
|
+
# server-side encryption by using Amazon S3 managed keys (SSE-S3) by
|
|
2409
|
+
# default. You can optionally tell Amazon S3 to encrypt data at rest
|
|
2410
|
+
# by using server-side encryption with other key options. For more
|
|
2411
|
+
# information, see [Using Server-Side Encryption][1] in the *Amazon S3
|
|
2412
|
+
# User Guide*.
|
|
2413
|
+
#
|
|
2414
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
|
2415
|
+
# two supported options for server-side encryption: server-side
|
|
2416
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
|
2417
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
|
2418
|
+
# recommend that the bucket's default encryption uses the desired
|
|
2419
|
+
# encryption configuration and you don't override the bucket default
|
|
2420
|
+
# encryption in your `CreateSession` requests or `PUT` object
|
|
2421
|
+
# requests. Then, new objects are automatically encrypted with the
|
|
2422
|
+
# desired encryption settings. For more information, see [Protecting
|
|
2423
|
+
# data with server-side encryption][2] in the *Amazon S3 User Guide*.
|
|
2424
|
+
# For more information about the encryption overriding behaviors in
|
|
2425
|
+
# directory buckets, see [Specifying server-side encryption with KMS
|
|
2426
|
+
# for new object uploads][3].
|
|
2427
|
+
#
|
|
2428
|
+
# In the Zonal endpoint API calls (except [CopyObject][4] and
|
|
2429
|
+
# [UploadPartCopy][5]) using the REST API, the encryption request
|
|
2430
|
+
# headers must match the encryption settings that are specified in the
|
|
2431
|
+
# `CreateSession` request. You can't override the values of the
|
|
2432
|
+
# encryption settings (`x-amz-server-side-encryption`,
|
|
2433
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
|
2434
|
+
# `x-amz-server-side-encryption-context`, and
|
|
2435
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) that are
|
|
2436
|
+
# specified in the `CreateSession` request. You don't need to
|
|
2437
|
+
# explicitly specify these encryption settings values in Zonal
|
|
2438
|
+
# endpoint API calls, and Amazon S3 will use the encryption settings
|
|
2439
|
+
# values from the `CreateSession` request to protect new objects in
|
|
2440
|
+
# the directory bucket.
|
|
2441
|
+
#
|
|
2442
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
|
2443
|
+
# `CreateSession`, the session token refreshes automatically to avoid
|
|
2444
|
+
# service interruptions when a session expires. The CLI or the Amazon
|
|
2445
|
+
# Web Services SDKs use the bucket's default encryption configuration
|
|
2446
|
+
# for the `CreateSession` request. It's not supported to override the
|
|
2447
|
+
# encryption settings values in the `CreateSession` request. So in the
|
|
2448
|
+
# Zonal endpoint API calls (except [CopyObject][4] and
|
|
2449
|
+
# [UploadPartCopy][5]), the encryption request headers must match the
|
|
2450
|
+
# default encryption configuration of the directory bucket.
|
|
2086
2451
|
#
|
|
2087
|
-
#
|
|
2088
|
-
#
|
|
2089
|
-
#
|
|
2452
|
+
# </note>
|
|
2453
|
+
#
|
|
2454
|
+
# * <b>S3 access points for Amazon FSx </b> - When accessing data stored
|
|
2455
|
+
# in Amazon FSx file systems using S3 access points, the only valid
|
|
2456
|
+
# server side encryption option is `aws:fsx`. All Amazon FSx file
|
|
2457
|
+
# systems have encryption configured by default and are encrypted at
|
|
2458
|
+
# rest. Data is automatically encrypted before being written to the
|
|
2459
|
+
# file system, and automatically decrypted as it is read. These
|
|
2460
|
+
# processes are handled transparently by Amazon FSx.
|
|
2090
2461
|
#
|
|
2091
2462
|
#
|
|
2092
2463
|
#
|
|
2093
2464
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
|
|
2465
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
|
2466
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
|
2467
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
|
2468
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
|
2094
2469
|
# @option options [String] :storage_class
|
|
2095
2470
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
|
2096
2471
|
# created objects. The STANDARD storage class provides high durability
|
|
@@ -2098,8 +2473,9 @@ module Aws::S3
|
|
|
2098
2473
|
# a different Storage Class. For more information, see [Storage
|
|
2099
2474
|
# Classes][1] in the *Amazon S3 User Guide*.
|
|
2100
2475
|
#
|
|
2101
|
-
# <note markdown="1"> *
|
|
2102
|
-
#
|
|
2476
|
+
# <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
|
|
2477
|
+
# Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
|
|
2478
|
+
# One Zone-Infrequent Access storage class) in Dedicated Local Zones.
|
|
2103
2479
|
#
|
|
2104
2480
|
# * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
|
|
2105
2481
|
#
|
|
@@ -2164,44 +2540,83 @@ module Aws::S3
|
|
|
2164
2540
|
#
|
|
2165
2541
|
# </note>
|
|
2166
2542
|
# @option options [String] :ssekms_key_id
|
|
2167
|
-
#
|
|
2168
|
-
#
|
|
2169
|
-
#
|
|
2170
|
-
#
|
|
2171
|
-
#
|
|
2172
|
-
#
|
|
2173
|
-
# x-amz-server-side-encryption
|
|
2174
|
-
#
|
|
2175
|
-
#
|
|
2176
|
-
#
|
|
2543
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
|
2544
|
+
# object encryption. If the KMS key doesn't exist in the same account
|
|
2545
|
+
# that's issuing the command, you must use the full Key ARN not the Key
|
|
2546
|
+
# ID.
|
|
2547
|
+
#
|
|
2548
|
+
# **General purpose buckets** - If you specify
|
|
2549
|
+
# `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
|
|
2550
|
+
# header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
|
|
2551
|
+
# to use. If you specify `x-amz-server-side-encryption:aws:kms` or
|
|
2552
|
+
# `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
|
|
2553
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
|
|
2554
|
+
# Amazon Web Services managed key (`aws/s3`) to protect the data.
|
|
2555
|
+
#
|
|
2556
|
+
# **Directory buckets** - To encrypt data using SSE-KMS, it's
|
|
2557
|
+
# recommended to specify the `x-amz-server-side-encryption` header to
|
|
2558
|
+
# `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
|
|
2559
|
+
# header implicitly uses the bucket's default KMS customer managed key
|
|
2560
|
+
# ID. If you want to explicitly set the `
|
|
2561
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
|
|
2562
|
+
# bucket's default customer managed key (using key ID or ARN, not
|
|
2563
|
+
# alias). Your SSE-KMS configuration can only support 1 [customer
|
|
2564
|
+
# managed key][1] per directory bucket's lifetime. The [Amazon Web
|
|
2565
|
+
# Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
|
|
2566
|
+
# specification results in an HTTP `400 Bad Request` error.
|
|
2567
|
+
#
|
|
2568
|
+
#
|
|
2569
|
+
#
|
|
2570
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
|
2571
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
|
2572
|
+
# @option options [String] :ssekms_encryption_context
|
|
2573
|
+
# Specifies the Amazon Web Services KMS Encryption Context as an
|
|
2574
|
+
# additional encryption context to use for object encryption. The value
|
|
2575
|
+
# of this header is a Base64 encoded string of a UTF-8 encoded JSON,
|
|
2576
|
+
# which contains the encryption context as key-value pairs. This value
|
|
2577
|
+
# is stored as object metadata and automatically gets passed on to
|
|
2578
|
+
# Amazon Web Services KMS for future `GetObject` operations on this
|
|
2579
|
+
# object.
|
|
2177
2580
|
#
|
|
2178
|
-
#
|
|
2581
|
+
# **General purpose buckets** - This value must be explicitly added
|
|
2582
|
+
# during `CopyObject` operations if you want an additional encryption
|
|
2583
|
+
# context for your object. For more information, see [Encryption
|
|
2584
|
+
# context][1] in the *Amazon S3 User Guide*.
|
|
2179
2585
|
#
|
|
2180
|
-
#
|
|
2181
|
-
#
|
|
2182
|
-
#
|
|
2183
|
-
#
|
|
2184
|
-
# string holding JSON with the encryption context key-value pairs. This
|
|
2185
|
-
# value is stored as object metadata and automatically gets passed on to
|
|
2186
|
-
# Amazon Web Services KMS for future `GetObject` or `CopyObject`
|
|
2187
|
-
# operations on this object. This value must be explicitly added during
|
|
2188
|
-
# `CopyObject` operations.
|
|
2586
|
+
# **Directory buckets** - You can optionally provide an explicit
|
|
2587
|
+
# encryption context value. The value must match the default encryption
|
|
2588
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
|
2589
|
+
# encryption context value is not supported.
|
|
2189
2590
|
#
|
|
2190
|
-
# <note markdown="1"> This functionality is not supported for directory buckets.
|
|
2191
2591
|
#
|
|
2192
|
-
#
|
|
2592
|
+
#
|
|
2593
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
|
|
2193
2594
|
# @option options [Boolean] :bucket_key_enabled
|
|
2194
2595
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
|
2195
2596
|
# encryption with server-side encryption using Key Management Service
|
|
2196
|
-
# (KMS) keys (SSE-KMS).
|
|
2197
|
-
# to use an S3 Bucket Key for object encryption with SSE-KMS.
|
|
2597
|
+
# (KMS) keys (SSE-KMS).
|
|
2198
2598
|
#
|
|
2199
|
-
#
|
|
2200
|
-
#
|
|
2599
|
+
# **General purpose buckets** - Setting this header to `true` causes
|
|
2600
|
+
# Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
|
|
2601
|
+
# Also, specifying this header with a PUT action doesn't affect
|
|
2602
|
+
# bucket-level settings for S3 Bucket Key.
|
|
2201
2603
|
#
|
|
2202
|
-
#
|
|
2604
|
+
# **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
|
|
2605
|
+
# and `PUT` operations in a directory bucket and can’t be disabled. S3
|
|
2606
|
+
# Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
|
|
2607
|
+
# from general purpose buckets to directory buckets, from directory
|
|
2608
|
+
# buckets to general purpose buckets, or between directory buckets,
|
|
2609
|
+
# through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
|
|
2610
|
+
# Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
|
|
2611
|
+
# makes a call to KMS every time a copy request is made for a
|
|
2612
|
+
# KMS-encrypted object.
|
|
2203
2613
|
#
|
|
2204
|
-
#
|
|
2614
|
+
#
|
|
2615
|
+
#
|
|
2616
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
|
2617
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
|
2618
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
|
2619
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
|
2205
2620
|
# @option options [String] :request_payer
|
|
2206
2621
|
# Confirms that the requester knows that they will be charged for the
|
|
2207
2622
|
# request. Bucket owners need not specify this parameter in their
|
|
@@ -2260,7 +2675,7 @@ module Aws::S3
|
|
|
2260
2675
|
bucket: @bucket_name,
|
|
2261
2676
|
key: @key
|
|
2262
2677
|
)
|
|
2263
|
-
resp = Aws::Plugins::UserAgent.
|
|
2678
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
2264
2679
|
@client.put_object(options)
|
|
2265
2680
|
end
|
|
2266
2681
|
resp.data
|
|
@@ -2316,7 +2731,7 @@ module Aws::S3
|
|
|
2316
2731
|
# bucket_name: "BucketName", # required
|
|
2317
2732
|
# prefix: "LocationPrefix", # required
|
|
2318
2733
|
# encryption: {
|
|
2319
|
-
# encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
|
|
2734
|
+
# encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
|
|
2320
2735
|
# kms_key_id: "SSEKMSKeyId",
|
|
2321
2736
|
# kms_context: "KMSContext",
|
|
2322
2737
|
# },
|
|
@@ -2347,12 +2762,12 @@ module Aws::S3
|
|
|
2347
2762
|
# value: "MetadataValue",
|
|
2348
2763
|
# },
|
|
2349
2764
|
# ],
|
|
2350
|
-
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
|
|
2765
|
+
# storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
|
|
2351
2766
|
# },
|
|
2352
2767
|
# },
|
|
2353
2768
|
# },
|
|
2354
2769
|
# request_payer: "requester", # accepts requester
|
|
2355
|
-
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
|
2770
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
|
|
2356
2771
|
# expected_bucket_owner: "AccountId",
|
|
2357
2772
|
# })
|
|
2358
2773
|
# @param [Hash] options ({})
|
|
@@ -2401,7 +2816,7 @@ module Aws::S3
|
|
|
2401
2816
|
bucket: @bucket_name,
|
|
2402
2817
|
key: @key
|
|
2403
2818
|
)
|
|
2404
|
-
resp = Aws::Plugins::UserAgent.
|
|
2819
|
+
resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
2405
2820
|
@client.restore_object(options)
|
|
2406
2821
|
end
|
|
2407
2822
|
resp.data
|
|
@@ -2529,7 +2944,7 @@ module Aws::S3
|
|
|
2529
2944
|
# request_payer: "requester", # accepts requester
|
|
2530
2945
|
# bypass_governance_retention: false,
|
|
2531
2946
|
# expected_bucket_owner: "AccountId",
|
|
2532
|
-
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
|
|
2947
|
+
# checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
|
|
2533
2948
|
# })
|
|
2534
2949
|
# @param options ({})
|
|
2535
2950
|
# @option options [String] :mfa
|
|
@@ -2593,22 +3008,23 @@ module Aws::S3
|
|
|
2593
3008
|
# For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
|
|
2594
3009
|
# the supported algorithm from the following list:
|
|
2595
3010
|
#
|
|
2596
|
-
# * CRC32
|
|
3011
|
+
# * `CRC32`
|
|
2597
3012
|
#
|
|
2598
|
-
# * CRC32C
|
|
3013
|
+
# * `CRC32C`
|
|
2599
3014
|
#
|
|
2600
|
-
# *
|
|
3015
|
+
# * `CRC64NVME`
|
|
2601
3016
|
#
|
|
2602
|
-
# *
|
|
3017
|
+
# * `SHA1`
|
|
3018
|
+
#
|
|
3019
|
+
# * `SHA256`
|
|
2603
3020
|
#
|
|
2604
3021
|
# For more information, see [Checking object integrity][1] in the
|
|
2605
3022
|
# *Amazon S3 User Guide*.
|
|
2606
3023
|
#
|
|
2607
3024
|
# If the individual checksum value you provide through
|
|
2608
3025
|
# `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
|
|
2609
|
-
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3
|
|
2610
|
-
#
|
|
2611
|
-
# that matches the provided value in `x-amz-checksum-algorithm `.
|
|
3026
|
+
# set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
|
|
3027
|
+
# request with a `BadDigest` error.
|
|
2612
3028
|
#
|
|
2613
3029
|
# If you provide an individual checksum, Amazon S3 ignores any provided
|
|
2614
3030
|
# `ChecksumAlgorithm` parameter.
|
|
@@ -2628,7 +3044,7 @@ module Aws::S3
|
|
|
2628
3044
|
key: item.key
|
|
2629
3045
|
}
|
|
2630
3046
|
end
|
|
2631
|
-
Aws::Plugins::UserAgent.
|
|
3047
|
+
Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
|
|
2632
3048
|
batch[0].client.delete_objects(params)
|
|
2633
3049
|
end
|
|
2634
3050
|
end
|
|
@@ -2640,3 +3056,6 @@ module Aws::S3
|
|
|
2640
3056
|
end
|
|
2641
3057
|
end
|
|
2642
3058
|
end
|
|
3059
|
+
|
|
3060
|
+
# Load customizations if they exist
|
|
3061
|
+
require 'aws-sdk-s3/customizations/object_summary'
|