aws-sdk-s3 1.147.0 → 1.163.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +103 -2
- 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 +209 -69
- data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
- data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +4 -4
- data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
- data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
- data/lib/aws-sdk-s3/bucket_policy.rb +4 -4
- data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
- data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
- data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
- data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
- data/lib/aws-sdk-s3/bucket_website.rb +4 -4
- data/lib/aws-sdk-s3/client.rb +1653 -637
- data/lib/aws-sdk-s3/client_api.rb +35 -3
- 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 +5 -5
- data/lib/aws-sdk-s3/customizations.rb +4 -1
- data/lib/aws-sdk-s3/encryption/client.rb +2 -2
- data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
- data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
- data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
- data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
- data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
- data/lib/aws-sdk-s3/endpoints.rb +199 -397
- data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
- data/lib/aws-sdk-s3/file_downloader.rb +1 -1
- data/lib/aws-sdk-s3/file_uploader.rb +1 -1
- data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
- data/lib/aws-sdk-s3/multipart_upload.rb +24 -4
- data/lib/aws-sdk-s3/multipart_upload_part.rb +3 -3
- data/lib/aws-sdk-s3/object.rb +394 -137
- data/lib/aws-sdk-s3/object_acl.rb +3 -3
- data/lib/aws-sdk-s3/object_copier.rb +1 -1
- data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
- data/lib/aws-sdk-s3/object_summary.rb +358 -115
- data/lib/aws-sdk-s3/object_version.rb +46 -9
- data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
- data/lib/aws-sdk-s3/plugins/endpoints.rb +10 -1
- data/lib/aws-sdk-s3/plugins/express_session_auth.rb +8 -2
- data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
- data/lib/aws-sdk-s3/presigner.rb +1 -0
- data/lib/aws-sdk-s3/resource.rb +12 -10
- data/lib/aws-sdk-s3/types.rb +966 -350
- data/lib/aws-sdk-s3.rb +1 -1
- data/sig/bucket.rbs +1 -0
- data/sig/client.rbs +38 -2
- data/sig/customizations/bucket.rbs +19 -0
- data/sig/customizations/object.rbs +38 -0
- data/sig/customizations/object_summary.rbs +35 -0
- data/sig/multipart_upload.rbs +1 -0
- data/sig/object.rbs +7 -0
- data/sig/object_summary.rbs +1 -0
- data/sig/object_version.rbs +6 -0
- data/sig/resource.rbs +6 -1
- data/sig/types.rbs +25 -2
- data/sig/waiters.rbs +12 -0
- metadata +12 -7
- data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
data/lib/aws-sdk-s3/client.rb
CHANGED
@@ -22,6 +22,7 @@ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
|
|
22
22
|
require 'aws-sdk-core/plugins/response_paging.rb'
|
23
23
|
require 'aws-sdk-core/plugins/stub_responses.rb'
|
24
24
|
require 'aws-sdk-core/plugins/idempotency_token.rb'
|
25
|
+
require 'aws-sdk-core/plugins/invocation_id.rb'
|
25
26
|
require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
|
26
27
|
require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
|
27
28
|
require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
|
@@ -31,9 +32,11 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
|
|
31
32
|
require 'aws-sdk-core/plugins/request_compression.rb'
|
32
33
|
require 'aws-sdk-core/plugins/defaults_mode.rb'
|
33
34
|
require 'aws-sdk-core/plugins/recursion_detection.rb'
|
35
|
+
require 'aws-sdk-core/plugins/telemetry.rb'
|
34
36
|
require 'aws-sdk-core/plugins/sign.rb'
|
35
37
|
require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
|
36
38
|
require 'aws-sdk-s3/plugins/accelerate.rb'
|
39
|
+
require 'aws-sdk-s3/plugins/access_grants.rb'
|
37
40
|
require 'aws-sdk-s3/plugins/arn.rb'
|
38
41
|
require 'aws-sdk-s3/plugins/bucket_dns.rb'
|
39
42
|
require 'aws-sdk-s3/plugins/bucket_name_restrictions.rb'
|
@@ -92,6 +95,7 @@ module Aws::S3
|
|
92
95
|
add_plugin(Aws::Plugins::ResponsePaging)
|
93
96
|
add_plugin(Aws::Plugins::StubResponses)
|
94
97
|
add_plugin(Aws::Plugins::IdempotencyToken)
|
98
|
+
add_plugin(Aws::Plugins::InvocationId)
|
95
99
|
add_plugin(Aws::Plugins::JsonvalueConverter)
|
96
100
|
add_plugin(Aws::Plugins::ClientMetricsPlugin)
|
97
101
|
add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
|
@@ -101,9 +105,11 @@ module Aws::S3
|
|
101
105
|
add_plugin(Aws::Plugins::RequestCompression)
|
102
106
|
add_plugin(Aws::Plugins::DefaultsMode)
|
103
107
|
add_plugin(Aws::Plugins::RecursionDetection)
|
108
|
+
add_plugin(Aws::Plugins::Telemetry)
|
104
109
|
add_plugin(Aws::Plugins::Sign)
|
105
110
|
add_plugin(Aws::Plugins::Protocols::RestXml)
|
106
111
|
add_plugin(Aws::S3::Plugins::Accelerate)
|
112
|
+
add_plugin(Aws::S3::Plugins::AccessGrants)
|
107
113
|
add_plugin(Aws::S3::Plugins::ARN)
|
108
114
|
add_plugin(Aws::S3::Plugins::BucketDns)
|
109
115
|
add_plugin(Aws::S3::Plugins::BucketNameRestrictions)
|
@@ -127,6 +133,11 @@ module Aws::S3
|
|
127
133
|
|
128
134
|
# @overload initialize(options)
|
129
135
|
# @param [Hash] options
|
136
|
+
#
|
137
|
+
# @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
|
138
|
+
# A list of plugins to apply to the client. Each plugin is either a
|
139
|
+
# class name or an instance of a plugin class.
|
140
|
+
#
|
130
141
|
# @option options [required, Aws::CredentialProvider] :credentials
|
131
142
|
# Your AWS credentials. This can be an instance of any one of the
|
132
143
|
# following classes:
|
@@ -184,6 +195,16 @@ module Aws::S3
|
|
184
195
|
# * `~/.aws/credentials`
|
185
196
|
# * `~/.aws/config`
|
186
197
|
#
|
198
|
+
# @option options [Boolean] :access_grants (false)
|
199
|
+
# When `true`, the S3 client will use the S3 Access Grants feature to
|
200
|
+
# authenticate requests. Bucket credentials will be fetched from S3
|
201
|
+
# Control using the `get_data_access` API.
|
202
|
+
#
|
203
|
+
# @option options [Aws::S3::AccessGrantsCredentialsProvider] :access_grants_credentials_provider
|
204
|
+
# When `access_grants` is `true`, this option can be used to provide
|
205
|
+
# additional options to the credentials provider, including a privilege
|
206
|
+
# setting, caching, and fallback behavior.
|
207
|
+
#
|
187
208
|
# @option options [String] :access_key_id
|
188
209
|
#
|
189
210
|
# @option options [Boolean] :active_endpoint_cache (false)
|
@@ -246,10 +267,16 @@ module Aws::S3
|
|
246
267
|
# @option options [Boolean] :disable_s3_express_session_auth
|
247
268
|
# Parameter to indicate whether S3Express session auth should be disabled
|
248
269
|
#
|
249
|
-
# @option options [String] :endpoint
|
250
|
-
#
|
251
|
-
#
|
252
|
-
#
|
270
|
+
# @option options [String, URI::HTTPS, URI::HTTP] :endpoint
|
271
|
+
# Normally you should not configure the `:endpoint` option
|
272
|
+
# directly. This is normally constructed from the `:region`
|
273
|
+
# option. Configuring `:endpoint` is normally reserved for
|
274
|
+
# connecting to test or custom endpoints. The endpoint should
|
275
|
+
# be a URI formatted like:
|
276
|
+
#
|
277
|
+
# 'http://example.com'
|
278
|
+
# 'https://example.com'
|
279
|
+
# 'http://example.com:123'
|
253
280
|
#
|
254
281
|
# @option options [Integer] :endpoint_cache_max_entries (1000)
|
255
282
|
# Used for the maximum size limit of the LRU cache storing endpoints data
|
@@ -365,7 +392,6 @@ module Aws::S3
|
|
365
392
|
# throttling. This is a provisional mode that may change behavior
|
366
393
|
# in the future.
|
367
394
|
#
|
368
|
-
#
|
369
395
|
# @option options [Boolean] :s3_disable_multiregion_access_points (false)
|
370
396
|
# When set to `false` this will option will raise errors when multi-region
|
371
397
|
# access point ARNs are used. Multi-region access points can potentially
|
@@ -382,13 +408,23 @@ module Aws::S3
|
|
382
408
|
#
|
383
409
|
# @option options [String] :sdk_ua_app_id
|
384
410
|
# A unique and opaque application ID that is appended to the
|
385
|
-
# User-Agent header as app
|
386
|
-
# maximum length of 50.
|
411
|
+
# User-Agent header as app/sdk_ua_app_id. It should have a
|
412
|
+
# maximum length of 50. This variable is sourced from environment
|
413
|
+
# variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
|
387
414
|
#
|
388
415
|
# @option options [String] :secret_access_key
|
389
416
|
#
|
390
417
|
# @option options [String] :session_token
|
391
418
|
#
|
419
|
+
# @option options [Array] :sigv4a_signing_region_set
|
420
|
+
# A list of regions that should be signed with SigV4a signing. When
|
421
|
+
# not passed, a default `:sigv4a_signing_region_set` is searched for
|
422
|
+
# in the following locations:
|
423
|
+
#
|
424
|
+
# * `Aws.config[:sigv4a_signing_region_set]`
|
425
|
+
# * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
|
426
|
+
# * `~/.aws/config`
|
427
|
+
#
|
392
428
|
# @option options [Boolean] :stub_responses (false)
|
393
429
|
# Causes the client to return stubbed responses. By default
|
394
430
|
# fake responses are generated and returned. You can specify
|
@@ -398,6 +434,16 @@ module Aws::S3
|
|
398
434
|
# ** Please note ** When response stubbing is enabled, no HTTP
|
399
435
|
# requests are made, and retries are disabled.
|
400
436
|
#
|
437
|
+
# @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
|
438
|
+
# Allows you to provide a telemetry provider, which is used to
|
439
|
+
# emit telemetry data. By default, uses `NoOpTelemetryProvider` which
|
440
|
+
# will not record or emit any telemetry data. The SDK supports the
|
441
|
+
# following telemetry providers:
|
442
|
+
#
|
443
|
+
# * OpenTelemetry (OTel) - To use the OTel provider, install and require the
|
444
|
+
# `opentelemetry-sdk` gem and then, pass in an instance of a
|
445
|
+
# `Aws::Telemetry::OTelProvider` for telemetry provider.
|
446
|
+
#
|
401
447
|
# @option options [Aws::TokenProvider] :token_provider
|
402
448
|
# A Bearer Token Provider. This can be an instance of any one of the
|
403
449
|
# following classes:
|
@@ -432,50 +478,71 @@ module Aws::S3
|
|
432
478
|
# @option options [Aws::S3::EndpointProvider] :endpoint_provider
|
433
479
|
# The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::S3::EndpointParameters`
|
434
480
|
#
|
435
|
-
# @option options [
|
436
|
-
#
|
437
|
-
#
|
438
|
-
#
|
439
|
-
#
|
440
|
-
#
|
441
|
-
#
|
442
|
-
#
|
443
|
-
#
|
444
|
-
#
|
445
|
-
#
|
446
|
-
# @option options [Float] :
|
447
|
-
#
|
448
|
-
#
|
449
|
-
#
|
481
|
+
# @option options [Float] :http_continue_timeout (1)
|
482
|
+
# The number of seconds to wait for a 100-continue response before sending the
|
483
|
+
# request body. This option has no effect unless the request has "Expect"
|
484
|
+
# header set to "100-continue". Defaults to `nil` which disables this
|
485
|
+
# behaviour. This value can safely be set per request on the session.
|
486
|
+
#
|
487
|
+
# @option options [Float] :http_idle_timeout (5)
|
488
|
+
# The number of seconds a connection is allowed to sit idle before it
|
489
|
+
# is considered stale. Stale connections are closed and removed from the
|
490
|
+
# pool before making a request.
|
491
|
+
#
|
492
|
+
# @option options [Float] :http_open_timeout (15)
|
493
|
+
# The default number of seconds to wait for response data.
|
494
|
+
# This value can safely be set per-request on the session.
|
495
|
+
#
|
496
|
+
# @option options [URI::HTTP,String] :http_proxy
|
497
|
+
# A proxy to send requests through. Formatted like 'http://proxy.com:123'.
|
498
|
+
#
|
499
|
+
# @option options [Float] :http_read_timeout (60)
|
500
|
+
# The default number of seconds to wait for response data.
|
501
|
+
# This value can safely be set per-request on the session.
|
502
|
+
#
|
503
|
+
# @option options [Boolean] :http_wire_trace (false)
|
504
|
+
# When `true`, HTTP debug output will be sent to the `:logger`.
|
505
|
+
#
|
506
|
+
# @option options [Proc] :on_chunk_received
|
507
|
+
# When a Proc object is provided, it will be used as callback when each chunk
|
508
|
+
# of the response body is received. It provides three arguments: the chunk,
|
509
|
+
# the number of bytes received, and the total number of
|
510
|
+
# bytes in the response (or nil if the server did not send a `content-length`).
|
511
|
+
#
|
512
|
+
# @option options [Proc] :on_chunk_sent
|
513
|
+
# When a Proc object is provided, it will be used as callback when each chunk
|
514
|
+
# of the request body is sent. It provides three arguments: the chunk,
|
515
|
+
# the number of bytes read from the body, and the total number of
|
516
|
+
# bytes in the body.
|
517
|
+
#
|
518
|
+
# @option options [Boolean] :raise_response_errors (true)
|
519
|
+
# When `true`, response errors are raised.
|
520
|
+
#
|
521
|
+
# @option options [String] :ssl_ca_bundle
|
522
|
+
# Full path to the SSL certificate authority bundle file that should be used when
|
523
|
+
# verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
|
524
|
+
# `:ssl_ca_directory` the the system default will be used if available.
|
525
|
+
#
|
526
|
+
# @option options [String] :ssl_ca_directory
|
527
|
+
# Full path of the directory that contains the unbundled SSL certificate
|
528
|
+
# authority files for verifying peer certificates. If you do
|
529
|
+
# not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
|
530
|
+
# default will be used if available.
|
450
531
|
#
|
451
|
-
# @option options [
|
452
|
-
#
|
453
|
-
# request body. This option has no effect unless the request has
|
454
|
-
# "Expect" header set to "100-continue". Defaults to `nil` which
|
455
|
-
# disables this behaviour. This value can safely be set per
|
456
|
-
# request on the session.
|
532
|
+
# @option options [String] :ssl_ca_store
|
533
|
+
# Sets the X509::Store to verify peer certificate.
|
457
534
|
#
|
458
|
-
# @option options [
|
459
|
-
#
|
535
|
+
# @option options [OpenSSL::X509::Certificate] :ssl_cert
|
536
|
+
# Sets a client certificate when creating http connections.
|
460
537
|
#
|
461
|
-
# @option options [
|
462
|
-
#
|
538
|
+
# @option options [OpenSSL::PKey] :ssl_key
|
539
|
+
# Sets a client key when creating http connections.
|
463
540
|
#
|
464
|
-
# @option options [
|
465
|
-
#
|
466
|
-
# connection.
|
541
|
+
# @option options [Float] :ssl_timeout
|
542
|
+
# Sets the SSL timeout in seconds
|
467
543
|
#
|
468
|
-
# @option options [
|
469
|
-
#
|
470
|
-
# verifying peer certificates. If you do not pass
|
471
|
-
# `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
|
472
|
-
# will be used if available.
|
473
|
-
#
|
474
|
-
# @option options [String] :ssl_ca_directory Full path of the
|
475
|
-
# directory that contains the unbundled SSL certificate
|
476
|
-
# authority files for verifying peer certificates. If you do
|
477
|
-
# not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
|
478
|
-
# system default will be used if available.
|
544
|
+
# @option options [Boolean] :ssl_verify_peer (true)
|
545
|
+
# When `true`, SSL peer certificates are verified when establishing a connection.
|
479
546
|
#
|
480
547
|
def initialize(*args)
|
481
548
|
super
|
@@ -495,12 +562,20 @@ module Aws::S3
|
|
495
562
|
# for the part storage, you should call the [ListParts][1] API operation
|
496
563
|
# and ensure that the parts list is empty.
|
497
564
|
#
|
498
|
-
# <note markdown="1"> **Directory buckets** -
|
499
|
-
#
|
500
|
-
#
|
501
|
-
#
|
502
|
-
#
|
503
|
-
#
|
565
|
+
# <note markdown="1"> * **Directory buckets** - If multipart uploads in a directory bucket
|
566
|
+
# are in progress, you can't delete the bucket until all the
|
567
|
+
# in-progress multipart uploads are aborted or completed. To delete
|
568
|
+
# these in-progress multipart uploads, use the `ListMultipartUploads`
|
569
|
+
# operation to list the in-progress multipart uploads in the bucket
|
570
|
+
# and use the `AbortMultupartUpload` operation to abort all the
|
571
|
+
# in-progress multipart uploads.
|
572
|
+
#
|
573
|
+
# * **Directory buckets** - For directory buckets, you must make
|
574
|
+
# requests for this API operation to the Zonal endpoint. These
|
575
|
+
# endpoints support virtual-hosted-style requests in the format
|
576
|
+
# `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
|
577
|
+
# `. Path-style requests are not supported. For more information, see
|
578
|
+
# [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
|
504
579
|
#
|
505
580
|
# </note>
|
506
581
|
#
|
@@ -725,9 +800,15 @@ module Aws::S3
|
|
725
800
|
# [Multipart Upload and Permissions][6] in the *Amazon S3 User
|
726
801
|
# Guide*.
|
727
802
|
#
|
803
|
+
# If you provide an [additional checksum value][7] in your
|
804
|
+
# `MultipartUpload` requests and the object is encrypted with Key
|
805
|
+
# Management Service, you must have permission to use the
|
806
|
+
# `kms:Decrypt` action for the `CompleteMultipartUpload` request to
|
807
|
+
# succeed.
|
808
|
+
#
|
728
809
|
# * **Directory bucket permissions** - To grant access to this API
|
729
810
|
# operation on a directory bucket, we recommend that you use the [
|
730
|
-
# `CreateSession` ][
|
811
|
+
# `CreateSession` ][8] API operation for session-based
|
731
812
|
# authorization. Specifically, you grant the
|
732
813
|
# `s3express:CreateSession` permission to the directory bucket in a
|
733
814
|
# bucket policy or an IAM identity-based policy. Then, you make the
|
@@ -738,7 +819,11 @@ module Aws::S3
|
|
738
819
|
# token for use. Amazon Web Services CLI or SDKs create session and
|
739
820
|
# refresh the session token automatically to avoid service
|
740
821
|
# interruptions when a session expires. For more information about
|
741
|
-
# authorization, see [ `CreateSession` ][
|
822
|
+
# authorization, see [ `CreateSession` ][8].
|
823
|
+
#
|
824
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
825
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
826
|
+
# identity-based policies and KMS key policies for the KMS key.
|
742
827
|
#
|
743
828
|
# Special errors
|
744
829
|
# : * Error Code: `EntityTooSmall`
|
@@ -779,15 +864,15 @@ module Aws::S3
|
|
779
864
|
#
|
780
865
|
# The following operations are related to `CompleteMultipartUpload`:
|
781
866
|
#
|
782
|
-
# * [CreateMultipartUpload][
|
867
|
+
# * [CreateMultipartUpload][9]
|
783
868
|
#
|
784
869
|
# * [UploadPart][1]
|
785
870
|
#
|
786
|
-
# * [AbortMultipartUpload][
|
871
|
+
# * [AbortMultipartUpload][10]
|
787
872
|
#
|
788
|
-
# * [ListParts][
|
873
|
+
# * [ListParts][11]
|
789
874
|
#
|
790
|
-
# * [ListMultipartUploads][
|
875
|
+
# * [ListMultipartUploads][12]
|
791
876
|
#
|
792
877
|
#
|
793
878
|
#
|
@@ -797,11 +882,12 @@ module Aws::S3
|
|
797
882
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
|
798
883
|
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
799
884
|
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
|
800
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
801
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
802
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
803
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
804
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
885
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
|
886
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
887
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
|
888
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
|
889
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
|
890
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
|
805
891
|
#
|
806
892
|
# @option params [required, String] :bucket
|
807
893
|
# Name of the bucket to which the multipart upload was initiated.
|
@@ -922,6 +1008,26 @@ module Aws::S3
|
|
922
1008
|
# you provide does not match the actual owner of the bucket, the request
|
923
1009
|
# fails with the HTTP status code `403 Forbidden` (access denied).
|
924
1010
|
#
|
1011
|
+
# @option params [String] :if_none_match
|
1012
|
+
# Uploads the object only if the object key name does not already exist
|
1013
|
+
# in the bucket specified. Otherwise, Amazon S3 returns a `412
|
1014
|
+
# Precondition Failed` error.
|
1015
|
+
#
|
1016
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
1017
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
1018
|
+
# re-initiate the multipart upload with `CreateMultipartUpload` and
|
1019
|
+
# re-upload each part.
|
1020
|
+
#
|
1021
|
+
# Expects the '*' (asterisk) character.
|
1022
|
+
#
|
1023
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
1024
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
1025
|
+
#
|
1026
|
+
#
|
1027
|
+
#
|
1028
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
1029
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
1030
|
+
#
|
925
1031
|
# @option params [String] :sse_customer_algorithm
|
926
1032
|
# The server-side encryption (SSE) algorithm used to encrypt the object.
|
927
1033
|
# This parameter is required only when the object was created using a
|
@@ -1037,6 +1143,7 @@ module Aws::S3
|
|
1037
1143
|
# checksum_sha256: "ChecksumSHA256",
|
1038
1144
|
# request_payer: "requester", # accepts requester
|
1039
1145
|
# expected_bucket_owner: "AccountId",
|
1146
|
+
# if_none_match: "IfNoneMatch",
|
1040
1147
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
1041
1148
|
# sse_customer_key: "SSECustomerKey",
|
1042
1149
|
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
@@ -1083,12 +1190,20 @@ module Aws::S3
|
|
1083
1190
|
# between directory buckets, and between general purpose buckets and
|
1084
1191
|
# directory buckets.
|
1085
1192
|
#
|
1086
|
-
# <note markdown="1">
|
1087
|
-
#
|
1088
|
-
#
|
1089
|
-
#
|
1090
|
-
#
|
1091
|
-
#
|
1193
|
+
# <note markdown="1"> * Amazon S3 supports copy operations using Multi-Region Access Points
|
1194
|
+
# only as a destination when using the Multi-Region Access Point ARN.
|
1195
|
+
#
|
1196
|
+
# * <b>Directory buckets </b> - For directory buckets, you must make
|
1197
|
+
# requests for this API operation to the Zonal endpoint. These
|
1198
|
+
# endpoints support virtual-hosted-style requests in the format
|
1199
|
+
# `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
|
1200
|
+
# `. Path-style requests are not supported. For more information, see
|
1201
|
+
# [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
|
1202
|
+
#
|
1203
|
+
# * VPC endpoints don't support cross-Region requests (including
|
1204
|
+
# copies). If you're using VPC endpoints, your source and destination
|
1205
|
+
# buckets should be in the same Amazon Web Services Region as your VPC
|
1206
|
+
# endpoint.
|
1092
1207
|
#
|
1093
1208
|
# </note>
|
1094
1209
|
#
|
@@ -1154,6 +1269,10 @@ module Aws::S3
|
|
1154
1269
|
# destination. The `s3express:SessionMode` condition key can't be
|
1155
1270
|
# set to `ReadOnly` on the copy destination bucket.
|
1156
1271
|
#
|
1272
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
1273
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
1274
|
+
# identity-based policies and KMS key policies for the KMS key.
|
1275
|
+
#
|
1157
1276
|
# For example policies, see [Example bucket policies for S3 Express
|
1158
1277
|
# One Zone][6] and [Amazon Web Services Identity and Access
|
1159
1278
|
# Management (IAM) identity-based policies for S3 Express One
|
@@ -1164,8 +1283,7 @@ module Aws::S3
|
|
1164
1283
|
# : When the request is an HTTP 1.1 request, the response is chunk
|
1165
1284
|
# encoded. When the request is not an HTTP 1.1 request, the response
|
1166
1285
|
# would not contain the `Content-Length`. You always need to read the
|
1167
|
-
# entire response body to check if the copy succeeds.
|
1168
|
-
# connection alive while we copy the data.
|
1286
|
+
# entire response body to check if the copy succeeds.
|
1169
1287
|
#
|
1170
1288
|
# * If the copy is successful, you receive a response with information
|
1171
1289
|
# about the copied object.
|
@@ -1601,9 +1719,8 @@ module Aws::S3
|
|
1601
1719
|
#
|
1602
1720
|
# @option params [String] :server_side_encryption
|
1603
1721
|
# The server-side encryption algorithm used when storing this object in
|
1604
|
-
# Amazon S3
|
1605
|
-
#
|
1606
|
-
# and will receive a `400 Bad Request` response.
|
1722
|
+
# Amazon S3. Unrecognized or unsupported values won’t write a
|
1723
|
+
# destination object and will receive a `400 Bad Request` response.
|
1607
1724
|
#
|
1608
1725
|
# Amazon S3 automatically encrypts all new objects that are copied to an
|
1609
1726
|
# S3 bucket. When copying an object, if you don't specify encryption
|
@@ -1611,35 +1728,72 @@ module Aws::S3
|
|
1611
1728
|
# object is set to the default encryption configuration of the
|
1612
1729
|
# destination bucket. By default, all buckets have a base level of
|
1613
1730
|
# encryption configuration that uses server-side encryption with Amazon
|
1614
|
-
# S3 managed keys (SSE-S3). If the destination bucket has a
|
1615
|
-
# encryption configuration
|
1616
|
-
#
|
1617
|
-
# encryption with Amazon Web Services KMS keys (DSSE-KMS), or
|
1618
|
-
# server-side encryption with customer-provided encryption keys (SSE-C),
|
1619
|
-
# Amazon S3 uses the corresponding KMS key, or a customer-provided key
|
1620
|
-
# to encrypt the target object copy.
|
1621
|
-
#
|
1622
|
-
# When you perform a `CopyObject` operation, if you want to use a
|
1623
|
-
# different type of encryption setting for the target object, you can
|
1624
|
-
# specify appropriate encryption-related headers to encrypt the target
|
1625
|
-
# object with an Amazon S3 managed key, a KMS key, or a
|
1626
|
-
# customer-provided key. If the encryption setting in your request is
|
1627
|
-
# different from the default encryption configuration of the destination
|
1628
|
-
# bucket, the encryption setting in your request takes precedence.
|
1731
|
+
# S3 managed keys (SSE-S3). If the destination bucket has a different
|
1732
|
+
# default encryption configuration, Amazon S3 uses the corresponding
|
1733
|
+
# encryption key to encrypt the target object copy.
|
1629
1734
|
#
|
1630
1735
|
# With server-side encryption, Amazon S3 encrypts your data as it writes
|
1631
1736
|
# your data to disks in its data centers and decrypts the data when you
|
1632
1737
|
# access it. For more information about server-side encryption, see
|
1633
1738
|
# [Using Server-Side Encryption][1] in the *Amazon S3 User Guide*.
|
1634
1739
|
#
|
1635
|
-
# <
|
1636
|
-
#
|
1637
|
-
#
|
1638
|
-
#
|
1740
|
+
# <b>General purpose buckets </b>
|
1741
|
+
#
|
1742
|
+
# * For general purpose buckets, there are the following supported
|
1743
|
+
# options for server-side encryption: server-side encryption with Key
|
1744
|
+
# Management Service (KMS) keys (SSE-KMS), dual-layer server-side
|
1745
|
+
# encryption with Amazon Web Services KMS keys (DSSE-KMS), and
|
1746
|
+
# server-side encryption with customer-provided encryption keys
|
1747
|
+
# (SSE-C). Amazon S3 uses the corresponding KMS key, or a
|
1748
|
+
# customer-provided key to encrypt the target object copy.
|
1749
|
+
#
|
1750
|
+
# * When you perform a `CopyObject` operation, if you want to use a
|
1751
|
+
# different type of encryption setting for the target object, you can
|
1752
|
+
# specify appropriate encryption-related headers to encrypt the target
|
1753
|
+
# object with an Amazon S3 managed key, a KMS key, or a
|
1754
|
+
# customer-provided key. If the encryption setting in your request is
|
1755
|
+
# different from the default encryption configuration of the
|
1756
|
+
# destination bucket, the encryption setting in your request takes
|
1757
|
+
# precedence.
|
1758
|
+
#
|
1759
|
+
# <b>Directory buckets </b>
|
1760
|
+
#
|
1761
|
+
# * For directory buckets, there are only two supported options for
|
1762
|
+
# server-side encryption: server-side encryption with Amazon S3
|
1763
|
+
# managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
|
1764
|
+
# keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
|
1765
|
+
# encryption uses the desired encryption configuration and you don't
|
1766
|
+
# override the bucket default encryption in your `CreateSession`
|
1767
|
+
# requests or `PUT` object requests. Then, new objects are
|
1768
|
+
# automatically encrypted with the desired encryption settings. For
|
1769
|
+
# more information, see [Protecting data with server-side
|
1770
|
+
# encryption][2] in the *Amazon S3 User Guide*. For more information
|
1771
|
+
# about the encryption overriding behaviors in directory buckets, see
|
1772
|
+
# [Specifying server-side encryption with KMS for new object
|
1773
|
+
# uploads][3].
|
1774
|
+
#
|
1775
|
+
# * To encrypt new object copies to a directory bucket with SSE-KMS, we
|
1776
|
+
# recommend you specify SSE-KMS as the directory bucket's default
|
1777
|
+
# encryption configuration with a KMS key (specifically, a [customer
|
1778
|
+
# managed key][4]). [Amazon Web Services managed key][5] (`aws/s3`)
|
1779
|
+
# isn't supported. Your SSE-KMS configuration can only support 1
|
1780
|
+
# [customer managed key][4] per directory bucket for the lifetime of
|
1781
|
+
# the bucket. After you specify a customer managed key for SSE-KMS,
|
1782
|
+
# you can't override the customer managed key for the bucket's
|
1783
|
+
# SSE-KMS configuration. Then, when you perform a `CopyObject`
|
1784
|
+
# operation and want to specify server-side encryption settings for
|
1785
|
+
# new object copies with SSE-KMS in the encryption-related request
|
1786
|
+
# headers, you must ensure the encryption key is the same customer
|
1787
|
+
# managed key that you specified for the directory bucket's default
|
1788
|
+
# encryption configuration.
|
1639
1789
|
#
|
1640
1790
|
#
|
1641
1791
|
#
|
1642
1792
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
|
1793
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
1794
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
1795
|
+
# [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
1796
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
1643
1797
|
#
|
1644
1798
|
# @option params [String] :storage_class
|
1645
1799
|
# If the `x-amz-storage-class` header is not used, the copied object
|
@@ -1736,33 +1890,51 @@ module Aws::S3
|
|
1736
1890
|
# </note>
|
1737
1891
|
#
|
1738
1892
|
# @option params [String] :ssekms_key_id
|
1739
|
-
# Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for
|
1740
|
-
# encryption. All GET and PUT requests for an object protected by
|
1741
|
-
# will fail if they're not made via SSL or using SigV4. For
|
1742
|
-
# about configuring any of the officially supported Amazon
|
1743
|
-
# SDKs and Amazon Web Services CLI, see [Specifying the
|
1744
|
-
# Version in Request Authentication][1] in the *Amazon S3 User
|
1745
|
-
#
|
1746
|
-
# <note markdown="1"> This functionality is not supported when the destination bucket is a
|
1747
|
-
# directory bucket.
|
1893
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
1894
|
+
# object encryption. All GET and PUT requests for an object protected by
|
1895
|
+
# KMS will fail if they're not made via SSL or using SigV4. For
|
1896
|
+
# information about configuring any of the officially supported Amazon
|
1897
|
+
# Web Services SDKs and Amazon Web Services CLI, see [Specifying the
|
1898
|
+
# Signature Version in Request Authentication][1] in the *Amazon S3 User
|
1899
|
+
# Guide*.
|
1748
1900
|
#
|
1749
|
-
#
|
1901
|
+
# **Directory buckets** - If you specify `x-amz-server-side-encryption`
|
1902
|
+
# with `aws:kms`, you must specify the `
|
1903
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
|
1904
|
+
# ID or Key ARN) of the KMS symmetric encryption customer managed key to
|
1905
|
+
# use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
|
1906
|
+
# key ID or key ARN. The key alias format of the KMS key isn't
|
1907
|
+
# supported. Your SSE-KMS configuration can only support 1 [customer
|
1908
|
+
# managed key][2] per directory bucket for the lifetime of the bucket.
|
1909
|
+
# [Amazon Web Services managed key][3] (`aws/s3`) isn't supported.
|
1750
1910
|
#
|
1751
1911
|
#
|
1752
1912
|
#
|
1753
1913
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
|
1914
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
1915
|
+
# [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
1754
1916
|
#
|
1755
1917
|
# @option params [String] :ssekms_encryption_context
|
1756
|
-
# Specifies the Amazon Web Services KMS Encryption Context
|
1757
|
-
#
|
1758
|
-
#
|
1759
|
-
#
|
1760
|
-
# `CopyObject` requests.
|
1918
|
+
# Specifies the Amazon Web Services KMS Encryption Context as an
|
1919
|
+
# additional encryption context to use for the destination object
|
1920
|
+
# encryption. The value of this header is a base64-encoded UTF-8 string
|
1921
|
+
# holding JSON with the encryption context key-value pairs.
|
1761
1922
|
#
|
1762
|
-
#
|
1763
|
-
#
|
1923
|
+
# **General purpose buckets** - This value must be explicitly added to
|
1924
|
+
# specify encryption context for `CopyObject` requests if you want an
|
1925
|
+
# additional encryption context for your destination object. The
|
1926
|
+
# additional encryption context of the source object won't be copied to
|
1927
|
+
# the destination object. For more information, see [Encryption
|
1928
|
+
# context][1] in the *Amazon S3 User Guide*.
|
1929
|
+
#
|
1930
|
+
# **Directory buckets** - You can optionally provide an explicit
|
1931
|
+
# encryption context value. The value must match the default encryption
|
1932
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
1933
|
+
# encryption context value is not supported.
|
1764
1934
|
#
|
1765
|
-
#
|
1935
|
+
#
|
1936
|
+
#
|
1937
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
|
1766
1938
|
#
|
1767
1939
|
# @option params [Boolean] :bucket_key_enabled
|
1768
1940
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
@@ -1777,14 +1949,19 @@ module Aws::S3
|
|
1777
1949
|
# For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon S3
|
1778
1950
|
# User Guide*.
|
1779
1951
|
#
|
1780
|
-
# <note markdown="1">
|
1781
|
-
#
|
1952
|
+
# <note markdown="1"> **Directory buckets** - S3 Bucket Keys aren't supported, when you
|
1953
|
+
# copy SSE-KMS encrypted objects from general purpose buckets to
|
1954
|
+
# directory buckets, from directory buckets to general purpose buckets,
|
1955
|
+
# or between directory buckets, through [CopyObject][2]. In this case,
|
1956
|
+
# Amazon S3 makes a call to KMS every time a copy request is made for a
|
1957
|
+
# KMS-encrypted object.
|
1782
1958
|
#
|
1783
1959
|
# </note>
|
1784
1960
|
#
|
1785
1961
|
#
|
1786
1962
|
#
|
1787
1963
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
|
1964
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
1788
1965
|
#
|
1789
1966
|
# @option params [String] :copy_source_sse_customer_algorithm
|
1790
1967
|
# Specifies the algorithm to use when decrypting the source object (for
|
@@ -2291,33 +2468,33 @@ module Aws::S3
|
|
2291
2468
|
# * {Types::CreateBucketOutput#location #location} => String
|
2292
2469
|
#
|
2293
2470
|
#
|
2294
|
-
# @example Example: To create a bucket
|
2471
|
+
# @example Example: To create a bucket in a specific region
|
2295
2472
|
#
|
2296
|
-
# # The following example creates a bucket.
|
2473
|
+
# # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
|
2297
2474
|
#
|
2298
2475
|
# resp = client.create_bucket({
|
2299
2476
|
# bucket: "examplebucket",
|
2477
|
+
# create_bucket_configuration: {
|
2478
|
+
# location_constraint: "eu-west-1",
|
2479
|
+
# },
|
2300
2480
|
# })
|
2301
2481
|
#
|
2302
2482
|
# resp.to_h outputs the following:
|
2303
2483
|
# {
|
2304
|
-
# location: "/
|
2484
|
+
# location: "http://examplebucket.<Region>.s3.amazonaws.com/",
|
2305
2485
|
# }
|
2306
2486
|
#
|
2307
|
-
# @example Example: To create a bucket
|
2487
|
+
# @example Example: To create a bucket
|
2308
2488
|
#
|
2309
|
-
# # The following example creates a bucket.
|
2489
|
+
# # The following example creates a bucket.
|
2310
2490
|
#
|
2311
2491
|
# resp = client.create_bucket({
|
2312
2492
|
# bucket: "examplebucket",
|
2313
|
-
# create_bucket_configuration: {
|
2314
|
-
# location_constraint: "eu-west-1",
|
2315
|
-
# },
|
2316
2493
|
# })
|
2317
2494
|
#
|
2318
2495
|
# resp.to_h outputs the following:
|
2319
2496
|
# {
|
2320
|
-
# location: "
|
2497
|
+
# location: "/examplebucket",
|
2321
2498
|
# }
|
2322
2499
|
#
|
2323
2500
|
# @example Request syntax with placeholder values
|
@@ -2406,24 +2583,23 @@ module Aws::S3
|
|
2406
2583
|
# Version 4)][5] in the *Amazon S3 User Guide*.
|
2407
2584
|
#
|
2408
2585
|
# Permissions
|
2409
|
-
# : * **General purpose bucket permissions** -
|
2410
|
-
#
|
2411
|
-
#
|
2412
|
-
#
|
2413
|
-
#
|
2414
|
-
#
|
2415
|
-
#
|
2416
|
-
# `
|
2417
|
-
#
|
2418
|
-
#
|
2419
|
-
#
|
2420
|
-
#
|
2421
|
-
#
|
2422
|
-
# Guide*.
|
2586
|
+
# : * **General purpose bucket permissions** - To perform a multipart
|
2587
|
+
# upload with encryption using an Key Management Service (KMS) KMS
|
2588
|
+
# key, the requester must have permission to the `kms:Decrypt` and
|
2589
|
+
# `kms:GenerateDataKey` actions on the key. The requester must also
|
2590
|
+
# have permissions for the `kms:GenerateDataKey` action for the
|
2591
|
+
# `CreateMultipartUpload` API. Then, the requester needs permissions
|
2592
|
+
# for the `kms:Decrypt` action on the `UploadPart` and
|
2593
|
+
# `UploadPartCopy` APIs. These permissions are required because
|
2594
|
+
# Amazon S3 must decrypt and read data from the encrypted file parts
|
2595
|
+
# before it completes the multipart upload. For more information,
|
2596
|
+
# see [Multipart upload API and permissions][6] and [Protecting data
|
2597
|
+
# using server-side encryption with Amazon Web Services KMS][7] in
|
2598
|
+
# the *Amazon S3 User Guide*.
|
2423
2599
|
#
|
2424
2600
|
# * **Directory bucket permissions** - To grant access to this API
|
2425
2601
|
# operation on a directory bucket, we recommend that you use the [
|
2426
|
-
# `CreateSession` ][
|
2602
|
+
# `CreateSession` ][8] API operation for session-based
|
2427
2603
|
# authorization. Specifically, you grant the
|
2428
2604
|
# `s3express:CreateSession` permission to the directory bucket in a
|
2429
2605
|
# bucket policy or an IAM identity-based policy. Then, you make the
|
@@ -2434,7 +2610,7 @@ module Aws::S3
|
|
2434
2610
|
# token for use. Amazon Web Services CLI or SDKs create session and
|
2435
2611
|
# refresh the session token automatically to avoid service
|
2436
2612
|
# interruptions when a session expires. For more information about
|
2437
|
-
# authorization, see [ `CreateSession` ][
|
2613
|
+
# authorization, see [ `CreateSession` ][8].
|
2438
2614
|
#
|
2439
2615
|
# Encryption
|
2440
2616
|
# : * **General purpose buckets** - Server-side encryption is for data
|
@@ -2461,7 +2637,7 @@ module Aws::S3
|
|
2461
2637
|
# the destination bucket, the encryption setting in your request
|
2462
2638
|
# takes precedence. If you choose to provide your own encryption
|
2463
2639
|
# key, the request headers you provide in [UploadPart][1] and
|
2464
|
-
# [UploadPartCopy][
|
2640
|
+
# [UploadPartCopy][9] requests must match the headers you used in
|
2465
2641
|
# the `CreateMultipartUpload` request.
|
2466
2642
|
#
|
2467
2643
|
# * Use KMS keys (SSE-KMS) that include the Amazon Web Services
|
@@ -2487,9 +2663,9 @@ module Aws::S3
|
|
2487
2663
|
# actions on the key. These permissions are required because
|
2488
2664
|
# Amazon S3 must decrypt and read data from the encrypted file
|
2489
2665
|
# parts before it completes the multipart upload. For more
|
2490
|
-
# information, see [Multipart upload API and permissions][
|
2666
|
+
# information, see [Multipart upload API and permissions][6] and
|
2491
2667
|
# [Protecting data using server-side encryption with Amazon Web
|
2492
|
-
# Services KMS][
|
2668
|
+
# Services KMS][7] in the *Amazon S3 User Guide*.
|
2493
2669
|
#
|
2494
2670
|
# * If your Identity and Access Management (IAM) user or role is
|
2495
2671
|
# in the same Amazon Web Services account as the KMS key, then
|
@@ -2504,13 +2680,13 @@ module Aws::S3
|
|
2504
2680
|
# For information about configuring any of the officially
|
2505
2681
|
# supported Amazon Web Services SDKs and Amazon Web Services
|
2506
2682
|
# CLI, see [Specifying the Signature Version in Request
|
2507
|
-
# Authentication][
|
2683
|
+
# Authentication][10] in the *Amazon S3 User Guide*.
|
2508
2684
|
#
|
2509
2685
|
# </note>
|
2510
2686
|
#
|
2511
2687
|
# For more information about server-side encryption with KMS keys
|
2512
2688
|
# (SSE-KMS), see [Protecting Data Using Server-Side Encryption
|
2513
|
-
# with KMS keys][
|
2689
|
+
# with KMS keys][7] in the *Amazon S3 User Guide*.
|
2514
2690
|
#
|
2515
2691
|
# * Use customer-provided encryption keys (SSE-C) – If you want to
|
2516
2692
|
# manage your own encryption keys, provide all the following
|
@@ -2525,11 +2701,55 @@ module Aws::S3
|
|
2525
2701
|
# For more information about server-side encryption with
|
2526
2702
|
# customer-provided encryption keys (SSE-C), see [ Protecting data
|
2527
2703
|
# using server-side encryption with customer-provided encryption
|
2528
|
-
# keys (SSE-C)][
|
2704
|
+
# keys (SSE-C)][11] in the *Amazon S3 User Guide*.
|
2705
|
+
#
|
2706
|
+
# * **Directory buckets** - For directory buckets, there are only two
|
2707
|
+
# supported options for server-side encryption: server-side
|
2708
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
2709
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
2710
|
+
# recommend that the bucket's default encryption uses the desired
|
2711
|
+
# encryption configuration and you don't override the bucket
|
2712
|
+
# default encryption in your `CreateSession` requests or `PUT`
|
2713
|
+
# object requests. Then, new objects are automatically encrypted
|
2714
|
+
# with the desired encryption settings. For more information, see
|
2715
|
+
# [Protecting data with server-side encryption][12] in the *Amazon
|
2716
|
+
# S3 User Guide*. For more information about the encryption
|
2717
|
+
# overriding behaviors in directory buckets, see [Specifying
|
2718
|
+
# server-side encryption with KMS for new object uploads][13].
|
2719
|
+
#
|
2720
|
+
# In the Zonal endpoint API calls (except [CopyObject][14] and
|
2721
|
+
# [UploadPartCopy][9]) using the REST API, the encryption request
|
2722
|
+
# headers must match the encryption settings that are specified in
|
2723
|
+
# the `CreateSession` request. You can't override the values of the
|
2724
|
+
# encryption settings (`x-amz-server-side-encryption`,
|
2725
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
2726
|
+
# `x-amz-server-side-encryption-context`, and
|
2727
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) that are
|
2728
|
+
# specified in the `CreateSession` request. You don't need to
|
2729
|
+
# explicitly specify these encryption settings values in Zonal
|
2730
|
+
# endpoint API calls, and Amazon S3 will use the encryption settings
|
2731
|
+
# values from the `CreateSession` request to protect new objects in
|
2732
|
+
# the directory bucket.
|
2733
|
+
#
|
2734
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
2735
|
+
# `CreateSession`, the session token refreshes automatically to
|
2736
|
+
# avoid service interruptions when a session expires. The CLI or the
|
2737
|
+
# Amazon Web Services SDKs use the bucket's default encryption
|
2738
|
+
# configuration for the `CreateSession` request. It's not supported
|
2739
|
+
# to override the encryption settings values in the `CreateSession`
|
2740
|
+
# request. So in the Zonal endpoint API calls (except
|
2741
|
+
# [CopyObject][14] and [UploadPartCopy][9]), the encryption request
|
2742
|
+
# headers must match the default encryption configuration of the
|
2743
|
+
# directory bucket.
|
2744
|
+
#
|
2745
|
+
# </note>
|
2746
|
+
#
|
2747
|
+
# <note markdown="1"> For directory buckets, when you perform a `CreateMultipartUpload`
|
2748
|
+
# operation and an `UploadPartCopy` operation, the request headers
|
2749
|
+
# you provide in the `CreateMultipartUpload` request must match the
|
2750
|
+
# default encryption configuration of the destination bucket.
|
2529
2751
|
#
|
2530
|
-
#
|
2531
|
-
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
|
2532
|
-
# supported.
|
2752
|
+
# </note>
|
2533
2753
|
#
|
2534
2754
|
# HTTP Host header syntax
|
2535
2755
|
#
|
@@ -2540,13 +2760,13 @@ module Aws::S3
|
|
2540
2760
|
#
|
2541
2761
|
# * [UploadPart][1]
|
2542
2762
|
#
|
2543
|
-
# * [CompleteMultipartUpload][
|
2763
|
+
# * [CompleteMultipartUpload][15]
|
2544
2764
|
#
|
2545
|
-
# * [AbortMultipartUpload][
|
2765
|
+
# * [AbortMultipartUpload][16]
|
2546
2766
|
#
|
2547
|
-
# * [ListParts][
|
2767
|
+
# * [ListParts][17]
|
2548
2768
|
#
|
2549
|
-
# * [ListMultipartUploads][
|
2769
|
+
# * [ListMultipartUploads][18]
|
2550
2770
|
#
|
2551
2771
|
#
|
2552
2772
|
#
|
@@ -2555,17 +2775,19 @@ module Aws::S3
|
|
2555
2775
|
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
|
2556
2776
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
2557
2777
|
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
|
2558
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/
|
2559
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
2560
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/
|
2561
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
2562
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/
|
2563
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/
|
2564
|
-
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
2565
|
-
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/
|
2566
|
-
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
2567
|
-
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
2568
|
-
# [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
2778
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
|
2779
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
|
2780
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
2781
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
2782
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
|
2783
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
|
2784
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
2785
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
2786
|
+
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
2787
|
+
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
|
2788
|
+
# [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
|
2789
|
+
# [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
|
2790
|
+
# [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
|
2569
2791
|
#
|
2570
2792
|
# @option params [String] :acl
|
2571
2793
|
# The canned ACL to apply to the object. Amazon S3 supports a set of
|
@@ -2928,10 +3150,52 @@ module Aws::S3
|
|
2928
3150
|
# The server-side encryption algorithm used when you store this object
|
2929
3151
|
# in Amazon S3 (for example, `AES256`, `aws:kms`).
|
2930
3152
|
#
|
2931
|
-
# <
|
2932
|
-
#
|
3153
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
3154
|
+
# two supported options for server-side encryption: server-side
|
3155
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
3156
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
3157
|
+
# recommend that the bucket's default encryption uses the desired
|
3158
|
+
# encryption configuration and you don't override the bucket default
|
3159
|
+
# encryption in your `CreateSession` requests or `PUT` object
|
3160
|
+
# requests. Then, new objects are automatically encrypted with the
|
3161
|
+
# desired encryption settings. For more information, see [Protecting
|
3162
|
+
# data with server-side encryption][1] in the *Amazon S3 User Guide*.
|
3163
|
+
# For more information about the encryption overriding behaviors in
|
3164
|
+
# directory buckets, see [Specifying server-side encryption with KMS
|
3165
|
+
# for new object uploads][2].
|
3166
|
+
#
|
3167
|
+
# In the Zonal endpoint API calls (except [CopyObject][3] and
|
3168
|
+
# [UploadPartCopy][4]) using the REST API, the encryption request
|
3169
|
+
# headers must match the encryption settings that are specified in the
|
3170
|
+
# `CreateSession` request. You can't override the values of the
|
3171
|
+
# encryption settings (`x-amz-server-side-encryption`,
|
3172
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
3173
|
+
# `x-amz-server-side-encryption-context`, and
|
3174
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) that are
|
3175
|
+
# specified in the `CreateSession` request. You don't need to
|
3176
|
+
# explicitly specify these encryption settings values in Zonal
|
3177
|
+
# endpoint API calls, and Amazon S3 will use the encryption settings
|
3178
|
+
# values from the `CreateSession` request to protect new objects in
|
3179
|
+
# the directory bucket.
|
3180
|
+
#
|
3181
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
3182
|
+
# `CreateSession`, the session token refreshes automatically to avoid
|
3183
|
+
# service interruptions when a session expires. The CLI or the Amazon
|
3184
|
+
# Web Services SDKs use the bucket's default encryption configuration
|
3185
|
+
# for the `CreateSession` request. It's not supported to override the
|
3186
|
+
# encryption settings values in the `CreateSession` request. So in the
|
3187
|
+
# Zonal endpoint API calls (except [CopyObject][3] and
|
3188
|
+
# [UploadPartCopy][4]), the encryption request headers must match the
|
3189
|
+
# default encryption configuration of the directory bucket.
|
3190
|
+
#
|
3191
|
+
# </note>
|
3192
|
+
#
|
2933
3193
|
#
|
2934
|
-
#
|
3194
|
+
#
|
3195
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
3196
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
3197
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
3198
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
2935
3199
|
#
|
2936
3200
|
# @option params [String] :storage_class
|
2937
3201
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
@@ -2990,34 +3254,71 @@ module Aws::S3
|
|
2990
3254
|
# </note>
|
2991
3255
|
#
|
2992
3256
|
# @option params [String] :ssekms_key_id
|
2993
|
-
# Specifies the ID (Key ID, Key ARN, or Key Alias)
|
2994
|
-
# encryption
|
2995
|
-
#
|
2996
|
-
#
|
2997
|
-
#
|
2998
|
-
#
|
3257
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
3258
|
+
# object encryption. If the KMS key doesn't exist in the same account
|
3259
|
+
# that's issuing the command, you must use the full Key ARN not the Key
|
3260
|
+
# ID.
|
3261
|
+
#
|
3262
|
+
# **General purpose buckets** - If you specify
|
3263
|
+
# `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
|
3264
|
+
# header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
|
3265
|
+
# to use. If you specify `x-amz-server-side-encryption:aws:kms` or
|
3266
|
+
# `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
|
3267
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
|
3268
|
+
# Amazon Web Services managed key (`aws/s3`) to protect the data.
|
3269
|
+
#
|
3270
|
+
# **Directory buckets** - If you specify `x-amz-server-side-encryption`
|
3271
|
+
# with `aws:kms`, you must specify the `
|
3272
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
|
3273
|
+
# ID or Key ARN) of the KMS symmetric encryption customer managed key to
|
3274
|
+
# use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
|
3275
|
+
# key ID or key ARN. The key alias format of the KMS key isn't
|
3276
|
+
# supported. Your SSE-KMS configuration can only support 1 [customer
|
3277
|
+
# managed key][1] per directory bucket for the lifetime of the bucket.
|
3278
|
+
# [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
|
3279
|
+
#
|
3280
|
+
#
|
3281
|
+
#
|
3282
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
3283
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
2999
3284
|
#
|
3000
3285
|
# @option params [String] :ssekms_encryption_context
|
3001
3286
|
# Specifies the Amazon Web Services KMS Encryption Context to use for
|
3002
|
-
# object encryption. The value of this header is a
|
3003
|
-
#
|
3004
|
-
#
|
3005
|
-
# <note markdown="1"> This functionality is not supported for directory buckets.
|
3287
|
+
# object encryption. The value of this header is a Base64-encoded string
|
3288
|
+
# of a UTF-8 encoded JSON, which contains the encryption context as
|
3289
|
+
# key-value pairs.
|
3006
3290
|
#
|
3007
|
-
#
|
3291
|
+
# **Directory buckets** - You can optionally provide an explicit
|
3292
|
+
# encryption context value. The value must match the default encryption
|
3293
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
3294
|
+
# encryption context value is not supported.
|
3008
3295
|
#
|
3009
3296
|
# @option params [Boolean] :bucket_key_enabled
|
3010
3297
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
3011
3298
|
# encryption with server-side encryption using Key Management Service
|
3012
|
-
# (KMS) keys (SSE-KMS).
|
3013
|
-
# to use an S3 Bucket Key for object encryption with SSE-KMS.
|
3299
|
+
# (KMS) keys (SSE-KMS).
|
3014
3300
|
#
|
3015
|
-
#
|
3301
|
+
# **General purpose buckets** - Setting this header to `true` causes
|
3302
|
+
# Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
|
3303
|
+
# Also, specifying this header with a PUT action doesn't affect
|
3016
3304
|
# bucket-level settings for S3 Bucket Key.
|
3017
3305
|
#
|
3018
|
-
#
|
3306
|
+
# **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
|
3307
|
+
# and `PUT` operations in a directory bucket and can’t be disabled. S3
|
3308
|
+
# Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
|
3309
|
+
# from general purpose buckets to directory buckets, from directory
|
3310
|
+
# buckets to general purpose buckets, or between directory buckets,
|
3311
|
+
# through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
|
3312
|
+
# Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
|
3313
|
+
# makes a call to KMS every time a copy request is made for a
|
3314
|
+
# KMS-encrypted object.
|
3019
3315
|
#
|
3020
|
-
#
|
3316
|
+
#
|
3317
|
+
#
|
3318
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
3319
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
3320
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
3321
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
3021
3322
|
#
|
3022
3323
|
# @option params [String] :request_payer
|
3023
3324
|
# Confirms that the requester knows that they will be charged for the
|
@@ -3178,9 +3479,10 @@ module Aws::S3
|
|
3178
3479
|
|
3179
3480
|
# Creates a session that establishes temporary security credentials to
|
3180
3481
|
# support fast authentication and authorization for the Zonal endpoint
|
3181
|
-
#
|
3182
|
-
#
|
3183
|
-
# [S3 Express One Zone APIs][1] in the *Amazon S3
|
3482
|
+
# API operations on directory buckets. For more information about Zonal
|
3483
|
+
# endpoint API operations that include the Availability Zone in the
|
3484
|
+
# request endpoint, see [S3 Express One Zone APIs][1] in the *Amazon S3
|
3485
|
+
# User Guide*.
|
3184
3486
|
#
|
3185
3487
|
# To make Zonal endpoint API requests on a directory bucket, use the
|
3186
3488
|
# `CreateSession` API operation. Specifically, you grant
|
@@ -3189,13 +3491,13 @@ module Aws::S3
|
|
3189
3491
|
# the `CreateSession` API request on the bucket, which returns temporary
|
3190
3492
|
# security credentials that include the access key ID, secret access
|
3191
3493
|
# key, session token, and expiration. These credentials have associated
|
3192
|
-
# permissions to access the Zonal endpoint
|
3193
|
-
# created, you don’t need to use other policies to grant
|
3194
|
-
# each Zonal endpoint API individually. Instead, in your
|
3195
|
-
# API requests, you sign your requests by applying the
|
3196
|
-
# security credentials of the session to the request headers
|
3197
|
-
# following the SigV4 protocol for authentication. You also apply
|
3198
|
-
# session token to the `x-amz-s3session-token` request header for
|
3494
|
+
# permissions to access the Zonal endpoint API operations. After the
|
3495
|
+
# session is created, you don’t need to use other policies to grant
|
3496
|
+
# permissions to each Zonal endpoint API individually. Instead, in your
|
3497
|
+
# Zonal endpoint API requests, you sign your requests by applying the
|
3498
|
+
# temporary security credentials of the session to the request headers
|
3499
|
+
# and following the SigV4 protocol for authentication. You also apply
|
3500
|
+
# the session token to the `x-amz-s3session-token` request header for
|
3199
3501
|
# authorization. Temporary security credentials are scoped to the bucket
|
3200
3502
|
# and expire after 5 minutes. After the expiration time, any calls that
|
3201
3503
|
# you make with those credentials will fail. You must use IAM
|
@@ -3218,16 +3520,16 @@ module Aws::S3
|
|
3218
3520
|
# [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
|
3219
3521
|
#
|
3220
3522
|
# * <b> <code>CopyObject</code> API operation</b> - Unlike other Zonal
|
3221
|
-
# endpoint
|
3222
|
-
# temporary security credentials returned from the `CreateSession`
|
3223
|
-
# operation for authentication and authorization. For information
|
3523
|
+
# endpoint API operations, the `CopyObject` API operation doesn't use
|
3524
|
+
# the temporary security credentials returned from the `CreateSession`
|
3525
|
+
# API operation for authentication and authorization. For information
|
3224
3526
|
# about authentication and authorization of the `CopyObject` API
|
3225
3527
|
# operation on directory buckets, see [CopyObject][4].
|
3226
3528
|
#
|
3227
3529
|
# * <b> <code>HeadBucket</code> API operation</b> - Unlike other Zonal
|
3228
|
-
# endpoint
|
3229
|
-
# temporary security credentials returned from the `CreateSession`
|
3230
|
-
# operation for authentication and authorization. For information
|
3530
|
+
# endpoint API operations, the `HeadBucket` API operation doesn't use
|
3531
|
+
# the temporary security credentials returned from the `CreateSession`
|
3532
|
+
# API operation for authentication and authorization. For information
|
3231
3533
|
# about authentication and authorization of the `HeadBucket` API
|
3232
3534
|
# operation on directory buckets, see [HeadBucket][5].
|
3233
3535
|
#
|
@@ -3246,9 +3548,71 @@ module Aws::S3
|
|
3246
3548
|
# Identity and Access Management (IAM) identity-based policies for S3
|
3247
3549
|
# Express One Zone][8] in the *Amazon S3 User Guide*.
|
3248
3550
|
#
|
3249
|
-
# To grant cross-account access to Zonal endpoint
|
3250
|
-
# policy should also grant both accounts the
|
3251
|
-
# permission.
|
3551
|
+
# To grant cross-account access to Zonal endpoint API operations, the
|
3552
|
+
# bucket policy should also grant both accounts the
|
3553
|
+
# `s3express:CreateSession` permission.
|
3554
|
+
#
|
3555
|
+
# If you want to encrypt objects with SSE-KMS, you must also have the
|
3556
|
+
# `kms:GenerateDataKey` and the `kms:Decrypt` permissions in IAM
|
3557
|
+
# identity-based policies and KMS key policies for the target KMS key.
|
3558
|
+
#
|
3559
|
+
# Encryption
|
3560
|
+
#
|
3561
|
+
# : For directory buckets, there are only two supported options for
|
3562
|
+
# server-side encryption: server-side encryption with Amazon S3
|
3563
|
+
# managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
|
3564
|
+
# keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
|
3565
|
+
# encryption uses the desired encryption configuration and you don't
|
3566
|
+
# override the bucket default encryption in your `CreateSession`
|
3567
|
+
# requests or `PUT` object requests. Then, new objects are
|
3568
|
+
# automatically encrypted with the desired encryption settings. For
|
3569
|
+
# more information, see [Protecting data with server-side
|
3570
|
+
# encryption][9] in the *Amazon S3 User Guide*. For more information
|
3571
|
+
# about the encryption overriding behaviors in directory buckets, see
|
3572
|
+
# [Specifying server-side encryption with KMS for new object
|
3573
|
+
# uploads][10].
|
3574
|
+
#
|
3575
|
+
# For [Zonal endpoint (object-level) API operations][11] except
|
3576
|
+
# [CopyObject][4] and [UploadPartCopy][12], you authenticate and
|
3577
|
+
# authorize requests through [CreateSession][13] for low latency. To
|
3578
|
+
# encrypt new objects in a directory bucket with SSE-KMS, you must
|
3579
|
+
# specify SSE-KMS as the directory bucket's default encryption
|
3580
|
+
# configuration with a KMS key (specifically, a [customer managed
|
3581
|
+
# key][14]). Then, when a session is created for Zonal endpoint API
|
3582
|
+
# operations, new objects are automatically encrypted and decrypted
|
3583
|
+
# with SSE-KMS and S3 Bucket Keys during the session.
|
3584
|
+
#
|
3585
|
+
# <note markdown="1"> Only 1 [customer managed key][14] is supported per directory bucket
|
3586
|
+
# for the lifetime of the bucket. [Amazon Web Services managed
|
3587
|
+
# key][15] (`aws/s3`) isn't supported. After you specify SSE-KMS as
|
3588
|
+
# your bucket's default encryption configuration with a customer
|
3589
|
+
# managed key, you can't change the customer managed key for the
|
3590
|
+
# bucket's SSE-KMS configuration.
|
3591
|
+
#
|
3592
|
+
# </note>
|
3593
|
+
#
|
3594
|
+
# In the Zonal endpoint API calls (except [CopyObject][4] and
|
3595
|
+
# [UploadPartCopy][12]) using the REST API, you can't override the
|
3596
|
+
# values of the encryption settings (`x-amz-server-side-encryption`,
|
3597
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
3598
|
+
# `x-amz-server-side-encryption-context`, and
|
3599
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) from the
|
3600
|
+
# `CreateSession` request. You don't need to explicitly specify these
|
3601
|
+
# encryption settings values in Zonal endpoint API calls, and Amazon
|
3602
|
+
# S3 will use the encryption settings values from the `CreateSession`
|
3603
|
+
# request to protect new objects in the directory bucket.
|
3604
|
+
#
|
3605
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
3606
|
+
# `CreateSession`, the session token refreshes automatically to avoid
|
3607
|
+
# service interruptions when a session expires. The CLI or the Amazon
|
3608
|
+
# Web Services SDKs use the bucket's default encryption configuration
|
3609
|
+
# for the `CreateSession` request. It's not supported to override the
|
3610
|
+
# encryption settings values in the `CreateSession` request. Also, in
|
3611
|
+
# the Zonal endpoint API calls (except [CopyObject][4] and
|
3612
|
+
# [UploadPartCopy][12]), it's not supported to override the values of
|
3613
|
+
# the encryption settings from the `CreateSession` request.
|
3614
|
+
#
|
3615
|
+
# </note>
|
3252
3616
|
#
|
3253
3617
|
# HTTP Host header syntax
|
3254
3618
|
#
|
@@ -3265,21 +3629,110 @@ module Aws::S3
|
|
3265
3629
|
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters
|
3266
3630
|
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
|
3267
3631
|
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
|
3632
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
3633
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
3634
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations
|
3635
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
3636
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
3637
|
+
# [14]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
3638
|
+
# [15]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
3268
3639
|
#
|
3269
3640
|
# @option params [String] :session_mode
|
3270
3641
|
# Specifies the mode of the session that will be created, either
|
3271
3642
|
# `ReadWrite` or `ReadOnly`. By default, a `ReadWrite` session is
|
3272
3643
|
# created. A `ReadWrite` session is capable of executing all the Zonal
|
3273
|
-
# endpoint
|
3274
|
-
# constrained to execute the following Zonal endpoint
|
3275
|
-
# `HeadObject`, `ListObjectsV2`, `GetObjectAttributes`,
|
3276
|
-
# `ListMultipartUploads`.
|
3644
|
+
# endpoint API operations on a directory bucket. A `ReadOnly` session is
|
3645
|
+
# constrained to execute the following Zonal endpoint API operations:
|
3646
|
+
# `GetObject`, `HeadObject`, `ListObjectsV2`, `GetObjectAttributes`,
|
3647
|
+
# `ListParts`, and `ListMultipartUploads`.
|
3277
3648
|
#
|
3278
3649
|
# @option params [required, String] :bucket
|
3279
3650
|
# The name of the bucket that you create a session for.
|
3280
3651
|
#
|
3652
|
+
# @option params [String] :server_side_encryption
|
3653
|
+
# The server-side encryption algorithm to use when you store objects in
|
3654
|
+
# the directory bucket.
|
3655
|
+
#
|
3656
|
+
# For directory buckets, there are only two supported options for
|
3657
|
+
# server-side encryption: server-side encryption with Amazon S3 managed
|
3658
|
+
# keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys
|
3659
|
+
# (SSE-KMS) (`aws:kms`). By default, Amazon S3 encrypts data with
|
3660
|
+
# SSE-S3. For more information, see [Protecting data with server-side
|
3661
|
+
# encryption][1] in the *Amazon S3 User Guide*.
|
3662
|
+
#
|
3663
|
+
#
|
3664
|
+
#
|
3665
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
3666
|
+
#
|
3667
|
+
# @option params [String] :ssekms_key_id
|
3668
|
+
# If you specify `x-amz-server-side-encryption` with `aws:kms`, you must
|
3669
|
+
# specify the ` x-amz-server-side-encryption-aws-kms-key-id` header with
|
3670
|
+
# the ID (Key ID or Key ARN) of the KMS symmetric encryption customer
|
3671
|
+
# managed key to use. Otherwise, you get an HTTP `400 Bad Request`
|
3672
|
+
# error. Only use the key ID or key ARN. The key alias format of the KMS
|
3673
|
+
# key isn't supported. Also, if the KMS key doesn't exist in the same
|
3674
|
+
# account that't issuing the command, you must use the full Key ARN not
|
3675
|
+
# the Key ID.
|
3676
|
+
#
|
3677
|
+
# Your SSE-KMS configuration can only support 1 [customer managed
|
3678
|
+
# key][1] per directory bucket for the lifetime of the bucket. [Amazon
|
3679
|
+
# Web Services managed key][2] (`aws/s3`) isn't supported.
|
3680
|
+
#
|
3681
|
+
#
|
3682
|
+
#
|
3683
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
3684
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
3685
|
+
#
|
3686
|
+
# @option params [String] :ssekms_encryption_context
|
3687
|
+
# Specifies the Amazon Web Services KMS Encryption Context as an
|
3688
|
+
# additional encryption context to use for object encryption. The value
|
3689
|
+
# of this header is a Base64-encoded string of a UTF-8 encoded JSON,
|
3690
|
+
# which contains the encryption context as key-value pairs. This value
|
3691
|
+
# is stored as object metadata and automatically gets passed on to
|
3692
|
+
# Amazon Web Services KMS for future `GetObject` operations on this
|
3693
|
+
# object.
|
3694
|
+
#
|
3695
|
+
# **General purpose buckets** - This value must be explicitly added
|
3696
|
+
# during `CopyObject` operations if you want an additional encryption
|
3697
|
+
# context for your object. For more information, see [Encryption
|
3698
|
+
# context][1] in the *Amazon S3 User Guide*.
|
3699
|
+
#
|
3700
|
+
# **Directory buckets** - You can optionally provide an explicit
|
3701
|
+
# encryption context value. The value must match the default encryption
|
3702
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
3703
|
+
# encryption context value is not supported.
|
3704
|
+
#
|
3705
|
+
#
|
3706
|
+
#
|
3707
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
|
3708
|
+
#
|
3709
|
+
# @option params [Boolean] :bucket_key_enabled
|
3710
|
+
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
3711
|
+
# encryption with server-side encryption using KMS keys (SSE-KMS).
|
3712
|
+
#
|
3713
|
+
# S3 Bucket Keys are always enabled for `GET` and `PUT` operations in a
|
3714
|
+
# directory bucket and can’t be disabled. S3 Bucket Keys aren't
|
3715
|
+
# supported, when you copy SSE-KMS encrypted objects from general
|
3716
|
+
# purpose buckets to directory buckets, from directory buckets to
|
3717
|
+
# general purpose buckets, or between directory buckets, through
|
3718
|
+
# [CopyObject][1], [UploadPartCopy][2], [the Copy operation in Batch
|
3719
|
+
# Operations][3], or [the import jobs][4]. In this case, Amazon S3 makes
|
3720
|
+
# a call to KMS every time a copy request is made for a KMS-encrypted
|
3721
|
+
# object.
|
3722
|
+
#
|
3723
|
+
#
|
3724
|
+
#
|
3725
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
3726
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
3727
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
3728
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
3729
|
+
#
|
3281
3730
|
# @return [Types::CreateSessionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
3282
3731
|
#
|
3732
|
+
# * {Types::CreateSessionOutput#server_side_encryption #server_side_encryption} => String
|
3733
|
+
# * {Types::CreateSessionOutput#ssekms_key_id #ssekms_key_id} => String
|
3734
|
+
# * {Types::CreateSessionOutput#ssekms_encryption_context #ssekms_encryption_context} => String
|
3735
|
+
# * {Types::CreateSessionOutput#bucket_key_enabled #bucket_key_enabled} => Boolean
|
3283
3736
|
# * {Types::CreateSessionOutput#credentials #credentials} => Types::SessionCredentials
|
3284
3737
|
#
|
3285
3738
|
# @example Request syntax with placeholder values
|
@@ -3287,10 +3740,18 @@ module Aws::S3
|
|
3287
3740
|
# resp = client.create_session({
|
3288
3741
|
# session_mode: "ReadOnly", # accepts ReadOnly, ReadWrite
|
3289
3742
|
# bucket: "BucketName", # required
|
3743
|
+
# server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
|
3744
|
+
# ssekms_key_id: "SSEKMSKeyId",
|
3745
|
+
# ssekms_encryption_context: "SSEKMSEncryptionContext",
|
3746
|
+
# bucket_key_enabled: false,
|
3290
3747
|
# })
|
3291
3748
|
#
|
3292
3749
|
# @example Response structure
|
3293
3750
|
#
|
3751
|
+
# resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
|
3752
|
+
# resp.ssekms_key_id #=> String
|
3753
|
+
# resp.ssekms_encryption_context #=> String
|
3754
|
+
# resp.bucket_key_enabled #=> Boolean
|
3294
3755
|
# resp.credentials.access_key_id #=> String
|
3295
3756
|
# resp.credentials.secret_access_key #=> String
|
3296
3757
|
# resp.credentials.session_token #=> String
|
@@ -3536,47 +3997,92 @@ module Aws::S3
|
|
3536
3997
|
req.send_request(options)
|
3537
3998
|
end
|
3538
3999
|
|
3539
|
-
#
|
4000
|
+
# This implementation of the DELETE action resets the default encryption
|
4001
|
+
# for the bucket as server-side encryption with Amazon S3 managed keys
|
4002
|
+
# (SSE-S3).
|
4003
|
+
#
|
4004
|
+
# <note markdown="1"> * **General purpose buckets** - For information about the bucket
|
4005
|
+
# default encryption feature, see [Amazon S3 Bucket Default
|
4006
|
+
# Encryption][1] in the *Amazon S3 User Guide*.
|
4007
|
+
#
|
4008
|
+
# * **Directory buckets** - For directory buckets, there are only two
|
4009
|
+
# supported options for server-side encryption: SSE-S3 and SSE-KMS.
|
4010
|
+
# For information about the default encryption configuration in
|
4011
|
+
# directory buckets, see [Setting default server-side encryption
|
4012
|
+
# behavior for directory buckets][2].
|
3540
4013
|
#
|
3541
4014
|
# </note>
|
3542
4015
|
#
|
3543
|
-
#
|
3544
|
-
#
|
3545
|
-
#
|
3546
|
-
#
|
3547
|
-
#
|
4016
|
+
# Permissions
|
4017
|
+
# : * **General purpose bucket permissions** - The
|
4018
|
+
# `s3:PutEncryptionConfiguration` permission is required in a
|
4019
|
+
# policy. The bucket owner has this permission by default. The
|
4020
|
+
# bucket owner can grant this permission to others. For more
|
4021
|
+
# information about permissions, see [Permissions Related to Bucket
|
4022
|
+
# Operations][3] and [Managing Access Permissions to Your Amazon S3
|
4023
|
+
# Resources][4].
|
3548
4024
|
#
|
3549
|
-
#
|
3550
|
-
#
|
3551
|
-
# permission
|
3552
|
-
#
|
3553
|
-
#
|
3554
|
-
#
|
3555
|
-
#
|
4025
|
+
# * **Directory bucket permissions** - To grant access to this API
|
4026
|
+
# operation, you must have the
|
4027
|
+
# `s3express:PutEncryptionConfiguration` permission in an IAM
|
4028
|
+
# identity-based policy instead of a bucket policy. Cross-account
|
4029
|
+
# access to this API operation isn't supported. This operation can
|
4030
|
+
# only be performed by the Amazon Web Services account that owns the
|
4031
|
+
# resource. For more information about directory bucket policies and
|
4032
|
+
# permissions, see [Amazon Web Services Identity and Access
|
4033
|
+
# Management (IAM) for S3 Express One Zone][5] in the *Amazon S3
|
4034
|
+
# User Guide*.
|
4035
|
+
#
|
4036
|
+
# HTTP Host header syntax
|
4037
|
+
#
|
4038
|
+
# : <b>Directory buckets </b> - The HTTP Host header syntax is
|
4039
|
+
# `s3express-control.region.amazonaws.com`.
|
3556
4040
|
#
|
3557
4041
|
# The following operations are related to `DeleteBucketEncryption`:
|
3558
4042
|
#
|
3559
|
-
# * [PutBucketEncryption][
|
4043
|
+
# * [PutBucketEncryption][6]
|
3560
4044
|
#
|
3561
|
-
# * [GetBucketEncryption][
|
4045
|
+
# * [GetBucketEncryption][7]
|
3562
4046
|
#
|
3563
4047
|
#
|
3564
4048
|
#
|
3565
4049
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
|
3566
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
3567
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-
|
3568
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/
|
3569
|
-
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/
|
4050
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
|
4051
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
|
4052
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
|
4053
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
|
4054
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
|
4055
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
|
3570
4056
|
#
|
3571
4057
|
# @option params [required, String] :bucket
|
3572
4058
|
# The name of the bucket containing the server-side encryption
|
3573
4059
|
# configuration to delete.
|
3574
4060
|
#
|
4061
|
+
# <b>Directory buckets </b> - When you use this operation with a
|
4062
|
+
# directory bucket, you must use path-style requests in the format
|
4063
|
+
# `https://s3express-control.region_code.amazonaws.com/bucket-name `.
|
4064
|
+
# Virtual-hosted-style requests aren't supported. Directory bucket
|
4065
|
+
# names must be unique in the chosen Availability Zone. Bucket names
|
4066
|
+
# must also follow the format ` bucket_base_name--az_id--x-s3` (for
|
4067
|
+
# example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
|
4068
|
+
# bucket naming restrictions, see [Directory bucket naming rules][1] in
|
4069
|
+
# the *Amazon S3 User Guide*
|
4070
|
+
#
|
4071
|
+
#
|
4072
|
+
#
|
4073
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
|
4074
|
+
#
|
3575
4075
|
# @option params [String] :expected_bucket_owner
|
3576
4076
|
# The account ID of the expected bucket owner. If the account ID that
|
3577
4077
|
# you provide does not match the actual owner of the bucket, the request
|
3578
4078
|
# fails with the HTTP status code `403 Forbidden` (access denied).
|
3579
4079
|
#
|
4080
|
+
# <note markdown="1"> For directory buckets, this header is not supported in this API
|
4081
|
+
# operation. If you specify this header, the request fails with the HTTP
|
4082
|
+
# status code `501 Not Implemented`.
|
4083
|
+
#
|
4084
|
+
# </note>
|
4085
|
+
#
|
3580
4086
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
3581
4087
|
#
|
3582
4088
|
# @example Request syntax with placeholder values
|
@@ -4450,6 +4956,15 @@ module Aws::S3
|
|
4450
4956
|
# * {Types::DeleteObjectOutput#request_charged #request_charged} => String
|
4451
4957
|
#
|
4452
4958
|
#
|
4959
|
+
# @example Example: To delete an object (from a non-versioned bucket)
|
4960
|
+
#
|
4961
|
+
# # The following example deletes an object from a non-versioned bucket.
|
4962
|
+
#
|
4963
|
+
# resp = client.delete_object({
|
4964
|
+
# bucket: "ExampleBucket",
|
4965
|
+
# key: "HappyFace.jpg",
|
4966
|
+
# })
|
4967
|
+
#
|
4453
4968
|
# @example Example: To delete an object
|
4454
4969
|
#
|
4455
4970
|
# # The following example deletes an object from an S3 bucket.
|
@@ -4463,15 +4978,6 @@ module Aws::S3
|
|
4463
4978
|
# {
|
4464
4979
|
# }
|
4465
4980
|
#
|
4466
|
-
# @example Example: To delete an object (from a non-versioned bucket)
|
4467
|
-
#
|
4468
|
-
# # The following example deletes an object from a non-versioned bucket.
|
4469
|
-
#
|
4470
|
-
# resp = client.delete_object({
|
4471
|
-
# bucket: "ExampleBucket",
|
4472
|
-
# key: "HappyFace.jpg",
|
4473
|
-
# })
|
4474
|
-
#
|
4475
4981
|
# @example Request syntax with placeholder values
|
4476
4982
|
#
|
4477
4983
|
# resp = client.delete_object({
|
@@ -4570,35 +5076,35 @@ module Aws::S3
|
|
4570
5076
|
# * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
|
4571
5077
|
#
|
4572
5078
|
#
|
4573
|
-
# @example Example: To remove tag set from an object
|
5079
|
+
# @example Example: To remove tag set from an object
|
4574
5080
|
#
|
4575
|
-
# # The following example removes tag set associated with the specified object
|
4576
|
-
# #
|
5081
|
+
# # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
|
5082
|
+
# # operation removes tag set from the latest object version.
|
4577
5083
|
#
|
4578
5084
|
# resp = client.delete_object_tagging({
|
4579
5085
|
# bucket: "examplebucket",
|
4580
5086
|
# key: "HappyFace.jpg",
|
4581
|
-
# version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
|
4582
5087
|
# })
|
4583
5088
|
#
|
4584
5089
|
# resp.to_h outputs the following:
|
4585
5090
|
# {
|
4586
|
-
# version_id: "
|
5091
|
+
# version_id: "null",
|
4587
5092
|
# }
|
4588
5093
|
#
|
4589
|
-
# @example Example: To remove tag set from an object
|
5094
|
+
# @example Example: To remove tag set from an object version
|
4590
5095
|
#
|
4591
|
-
# # The following example removes tag set associated with the specified object.
|
4592
|
-
# #
|
5096
|
+
# # The following example removes tag set associated with the specified object version. The request specifies both the
|
5097
|
+
# # object key and object version.
|
4593
5098
|
#
|
4594
5099
|
# resp = client.delete_object_tagging({
|
4595
5100
|
# bucket: "examplebucket",
|
4596
5101
|
# key: "HappyFace.jpg",
|
5102
|
+
# version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
|
4597
5103
|
# })
|
4598
5104
|
#
|
4599
5105
|
# resp.to_h outputs the following:
|
4600
5106
|
# {
|
4601
|
-
# version_id: "
|
5107
|
+
# version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
|
4602
5108
|
# }
|
4603
5109
|
#
|
4604
5110
|
# @example Request syntax with placeholder values
|
@@ -4680,7 +5186,7 @@ module Aws::S3
|
|
4680
5186
|
# permission.
|
4681
5187
|
#
|
4682
5188
|
# * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
|
4683
|
-
# specific version of an object from a
|
5189
|
+
# specific version of an object from a versioning-enabled bucket,
|
4684
5190
|
# you must specify the `s3:DeleteObjectVersion` permission.
|
4685
5191
|
#
|
4686
5192
|
# * **Directory bucket permissions** - To grant access to this API
|
@@ -5451,46 +5957,92 @@ module Aws::S3
|
|
5451
5957
|
req.send_request(options)
|
5452
5958
|
end
|
5453
5959
|
|
5454
|
-
#
|
5960
|
+
# Returns the default encryption configuration for an Amazon S3 bucket.
|
5961
|
+
# By default, all buckets have a default encryption configuration that
|
5962
|
+
# uses server-side encryption with Amazon S3 managed keys (SSE-S3).
|
5963
|
+
#
|
5964
|
+
# <note markdown="1"> * **General purpose buckets** - For information about the bucket
|
5965
|
+
# default encryption feature, see [Amazon S3 Bucket Default
|
5966
|
+
# Encryption][1] in the *Amazon S3 User Guide*.
|
5967
|
+
#
|
5968
|
+
# * **Directory buckets** - For directory buckets, there are only two
|
5969
|
+
# supported options for server-side encryption: SSE-S3 and SSE-KMS.
|
5970
|
+
# For information about the default encryption configuration in
|
5971
|
+
# directory buckets, see [Setting default server-side encryption
|
5972
|
+
# behavior for directory buckets][2].
|
5455
5973
|
#
|
5456
5974
|
# </note>
|
5457
5975
|
#
|
5458
|
-
#
|
5459
|
-
#
|
5460
|
-
#
|
5461
|
-
#
|
5462
|
-
#
|
5976
|
+
# Permissions
|
5977
|
+
# : * **General purpose bucket permissions** - The
|
5978
|
+
# `s3:GetEncryptionConfiguration` permission is required in a
|
5979
|
+
# policy. The bucket owner has this permission by default. The
|
5980
|
+
# bucket owner can grant this permission to others. For more
|
5981
|
+
# information about permissions, see [Permissions Related to Bucket
|
5982
|
+
# Operations][3] and [Managing Access Permissions to Your Amazon S3
|
5983
|
+
# Resources][4].
|
5463
5984
|
#
|
5464
|
-
#
|
5465
|
-
#
|
5466
|
-
# permission
|
5467
|
-
#
|
5468
|
-
#
|
5469
|
-
#
|
5985
|
+
# * **Directory bucket permissions** - To grant access to this API
|
5986
|
+
# operation, you must have the
|
5987
|
+
# `s3express:GetEncryptionConfiguration` permission in an IAM
|
5988
|
+
# identity-based policy instead of a bucket policy. Cross-account
|
5989
|
+
# access to this API operation isn't supported. This operation can
|
5990
|
+
# only be performed by the Amazon Web Services account that owns the
|
5991
|
+
# resource. For more information about directory bucket policies and
|
5992
|
+
# permissions, see [Amazon Web Services Identity and Access
|
5993
|
+
# Management (IAM) for S3 Express One Zone][5] in the *Amazon S3
|
5994
|
+
# User Guide*.
|
5995
|
+
#
|
5996
|
+
# HTTP Host header syntax
|
5997
|
+
#
|
5998
|
+
# : <b>Directory buckets </b> - The HTTP Host header syntax is
|
5999
|
+
# `s3express-control.region.amazonaws.com`.
|
5470
6000
|
#
|
5471
6001
|
# The following operations are related to `GetBucketEncryption`:
|
5472
6002
|
#
|
5473
|
-
# * [PutBucketEncryption][
|
6003
|
+
# * [PutBucketEncryption][6]
|
5474
6004
|
#
|
5475
|
-
# * [DeleteBucketEncryption][
|
6005
|
+
# * [DeleteBucketEncryption][7]
|
5476
6006
|
#
|
5477
6007
|
#
|
5478
6008
|
#
|
5479
6009
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
|
5480
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
5481
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-
|
5482
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/
|
5483
|
-
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/
|
6010
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
|
6011
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
|
6012
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
|
6013
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
|
6014
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
|
6015
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
|
5484
6016
|
#
|
5485
6017
|
# @option params [required, String] :bucket
|
5486
6018
|
# The name of the bucket from which the server-side encryption
|
5487
6019
|
# configuration is retrieved.
|
5488
6020
|
#
|
6021
|
+
# <b>Directory buckets </b> - When you use this operation with a
|
6022
|
+
# directory bucket, you must use path-style requests in the format
|
6023
|
+
# `https://s3express-control.region_code.amazonaws.com/bucket-name `.
|
6024
|
+
# Virtual-hosted-style requests aren't supported. Directory bucket
|
6025
|
+
# names must be unique in the chosen Availability Zone. Bucket names
|
6026
|
+
# must also follow the format ` bucket_base_name--az_id--x-s3` (for
|
6027
|
+
# example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
|
6028
|
+
# bucket naming restrictions, see [Directory bucket naming rules][1] in
|
6029
|
+
# the *Amazon S3 User Guide*
|
6030
|
+
#
|
6031
|
+
#
|
6032
|
+
#
|
6033
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
|
6034
|
+
#
|
5489
6035
|
# @option params [String] :expected_bucket_owner
|
5490
6036
|
# The account ID of the expected bucket owner. If the account ID that
|
5491
6037
|
# you provide does not match the actual owner of the bucket, the request
|
5492
6038
|
# fails with the HTTP status code `403 Forbidden` (access denied).
|
5493
6039
|
#
|
6040
|
+
# <note markdown="1"> For directory buckets, this header is not supported in this API
|
6041
|
+
# operation. If you specify this header, the request fails with the HTTP
|
6042
|
+
# status code `501 Not Implemented`.
|
6043
|
+
#
|
6044
|
+
# </note>
|
6045
|
+
#
|
5494
6046
|
# @return [Types::GetBucketEncryptionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
5495
6047
|
#
|
5496
6048
|
# * {Types::GetBucketEncryptionOutput#server_side_encryption_configuration #server_side_encryption_configuration} => Types::ServerSideEncryptionConfiguration
|
@@ -7230,6 +7782,10 @@ module Aws::S3
|
|
7230
7782
|
# interruptions when a session expires. For more information about
|
7231
7783
|
# authorization, see [ `CreateSession` ][4].
|
7232
7784
|
#
|
7785
|
+
# If the object is encrypted using SSE-KMS, you must also have the
|
7786
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
7787
|
+
# identity-based policies and KMS key policies for the KMS key.
|
7788
|
+
#
|
7233
7789
|
# Storage classes
|
7234
7790
|
#
|
7235
7791
|
# : If the object you are retrieving is stored in the S3 Glacier
|
@@ -7258,6 +7814,11 @@ module Aws::S3
|
|
7258
7814
|
# `GetObject` requests for the object that uses these types of keys,
|
7259
7815
|
# you’ll get an HTTP `400 Bad Request` error.
|
7260
7816
|
#
|
7817
|
+
# **Directory buckets** - For directory buckets, there are only two
|
7818
|
+
# supported options for server-side encryption: SSE-S3 and SSE-KMS.
|
7819
|
+
# SSE-C isn't supported. For more information, see [Protecting data
|
7820
|
+
# with server-side encryption][7] in the *Amazon S3 User Guide*.
|
7821
|
+
#
|
7261
7822
|
# Overriding response header values through the request
|
7262
7823
|
#
|
7263
7824
|
# : There are times when you want to override certain response header
|
@@ -7305,9 +7866,9 @@ module Aws::S3
|
|
7305
7866
|
#
|
7306
7867
|
# The following operations are related to `GetObject`:
|
7307
7868
|
#
|
7308
|
-
# * [ListBuckets][
|
7869
|
+
# * [ListBuckets][8]
|
7309
7870
|
#
|
7310
|
-
# * [GetObjectAcl][
|
7871
|
+
# * [GetObjectAcl][9]
|
7311
7872
|
#
|
7312
7873
|
#
|
7313
7874
|
#
|
@@ -7317,8 +7878,9 @@ module Aws::S3
|
|
7317
7878
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
7318
7879
|
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
|
7319
7880
|
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
|
7320
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/
|
7321
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
7881
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
7882
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html
|
7883
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
|
7322
7884
|
#
|
7323
7885
|
# @option params [String, IO] :response_target
|
7324
7886
|
# Where to write response data, file path, or IO object.
|
@@ -7615,6 +8177,15 @@ module Aws::S3
|
|
7615
8177
|
# @option params [String] :checksum_mode
|
7616
8178
|
# To retrieve the checksum, this mode must be enabled.
|
7617
8179
|
#
|
8180
|
+
# **General purpose buckets** - In addition, if you enable checksum mode
|
8181
|
+
# and the object is uploaded with a [checksum][1] and encrypted with an
|
8182
|
+
# Key Management Service (KMS) key, you must have permission to use the
|
8183
|
+
# `kms:Decrypt` action to retrieve the checksum.
|
8184
|
+
#
|
8185
|
+
#
|
8186
|
+
#
|
8187
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
|
8188
|
+
#
|
7618
8189
|
# @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
7619
8190
|
#
|
7620
8191
|
# * {Types::GetObjectOutput#body #body} => IO
|
@@ -7656,49 +8227,49 @@ module Aws::S3
|
|
7656
8227
|
# * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
|
7657
8228
|
#
|
7658
8229
|
#
|
7659
|
-
# @example Example: To retrieve
|
8230
|
+
# @example Example: To retrieve an object
|
7660
8231
|
#
|
7661
|
-
# # The following example retrieves an object for an S3 bucket.
|
7662
|
-
# # specific byte range.
|
8232
|
+
# # The following example retrieves an object for an S3 bucket.
|
7663
8233
|
#
|
7664
8234
|
# resp = client.get_object({
|
7665
8235
|
# bucket: "examplebucket",
|
7666
|
-
# key: "
|
7667
|
-
# range: "bytes=0-9",
|
8236
|
+
# key: "HappyFace.jpg",
|
7668
8237
|
# })
|
7669
8238
|
#
|
7670
8239
|
# resp.to_h outputs the following:
|
7671
8240
|
# {
|
7672
8241
|
# accept_ranges: "bytes",
|
7673
|
-
# content_length:
|
7674
|
-
#
|
7675
|
-
#
|
7676
|
-
#
|
7677
|
-
# last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
|
8242
|
+
# content_length: 3191,
|
8243
|
+
# content_type: "image/jpeg",
|
8244
|
+
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
8245
|
+
# last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
|
7678
8246
|
# metadata: {
|
7679
8247
|
# },
|
8248
|
+
# tag_count: 2,
|
7680
8249
|
# version_id: "null",
|
7681
8250
|
# }
|
7682
8251
|
#
|
7683
|
-
# @example Example: To retrieve an object
|
8252
|
+
# @example Example: To retrieve a byte range of an object
|
7684
8253
|
#
|
7685
|
-
# # The following example retrieves an object for an S3 bucket.
|
8254
|
+
# # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
|
8255
|
+
# # specific byte range.
|
7686
8256
|
#
|
7687
8257
|
# resp = client.get_object({
|
7688
8258
|
# bucket: "examplebucket",
|
7689
|
-
# key: "
|
8259
|
+
# key: "SampleFile.txt",
|
8260
|
+
# range: "bytes=0-9",
|
7690
8261
|
# })
|
7691
8262
|
#
|
7692
8263
|
# resp.to_h outputs the following:
|
7693
8264
|
# {
|
7694
8265
|
# accept_ranges: "bytes",
|
7695
|
-
# content_length:
|
7696
|
-
#
|
7697
|
-
#
|
7698
|
-
#
|
8266
|
+
# content_length: 10,
|
8267
|
+
# content_range: "bytes 0-9/43",
|
8268
|
+
# content_type: "text/plain",
|
8269
|
+
# etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
|
8270
|
+
# last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
|
7699
8271
|
# metadata: {
|
7700
8272
|
# },
|
7701
|
-
# tag_count: 2,
|
7702
8273
|
# version_id: "null",
|
7703
8274
|
# }
|
7704
8275
|
#
|
@@ -8011,7 +8582,7 @@ module Aws::S3
|
|
8011
8582
|
# Permissions
|
8012
8583
|
# : * **General purpose bucket permissions** - To use
|
8013
8584
|
# `GetObjectAttributes`, you must have READ access to the object.
|
8014
|
-
# The permissions that you need to use this operation
|
8585
|
+
# The permissions that you need to use this operation depend on
|
8015
8586
|
# whether the bucket is versioned. If the bucket is versioned, you
|
8016
8587
|
# need both the `s3:GetObjectVersion` and
|
8017
8588
|
# `s3:GetObjectVersionAttributes` permissions for this operation. If
|
@@ -8045,6 +8616,10 @@ module Aws::S3
|
|
8045
8616
|
# interruptions when a session expires. For more information about
|
8046
8617
|
# authorization, see [ `CreateSession` ][3].
|
8047
8618
|
#
|
8619
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
8620
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
8621
|
+
# identity-based policies and KMS key policies for the KMS key.
|
8622
|
+
#
|
8048
8623
|
# Encryption
|
8049
8624
|
# : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
|
8050
8625
|
# should not be sent for `HEAD` requests if your object uses
|
@@ -8078,9 +8653,19 @@ module Aws::S3
|
|
8078
8653
|
# Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
|
8079
8654
|
# Guide*.
|
8080
8655
|
#
|
8081
|
-
# <note markdown="1"> **Directory bucket permissions** - For directory buckets,
|
8082
|
-
#
|
8083
|
-
# (`AES256`)
|
8656
|
+
# <note markdown="1"> **Directory bucket permissions** - For directory buckets, there are
|
8657
|
+
# only two supported options for server-side encryption: server-side
|
8658
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
8659
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
8660
|
+
# recommend that the bucket's default encryption uses the desired
|
8661
|
+
# encryption configuration and you don't override the bucket default
|
8662
|
+
# encryption in your `CreateSession` requests or `PUT` object
|
8663
|
+
# requests. Then, new objects are automatically encrypted with the
|
8664
|
+
# desired encryption settings. For more information, see [Protecting
|
8665
|
+
# data with server-side encryption][5] in the *Amazon S3 User Guide*.
|
8666
|
+
# For more information about the encryption overriding behaviors in
|
8667
|
+
# directory buckets, see [Specifying server-side encryption with KMS
|
8668
|
+
# for new object uploads][6].
|
8084
8669
|
#
|
8085
8670
|
# </note>
|
8086
8671
|
#
|
@@ -8104,7 +8689,7 @@ module Aws::S3
|
|
8104
8689
|
# * `If-Unmodified-Since` condition evaluates to `false`.
|
8105
8690
|
#
|
8106
8691
|
# For more information about conditional requests, see [RFC
|
8107
|
-
# 7232][
|
8692
|
+
# 7232][7].
|
8108
8693
|
#
|
8109
8694
|
# * If both of the `If-None-Match` and `If-Modified-Since` headers are
|
8110
8695
|
# present in the request as follows, then Amazon S3 returns the HTTP
|
@@ -8115,7 +8700,7 @@ module Aws::S3
|
|
8115
8700
|
# * `If-Modified-Since` condition evaluates to `true`.
|
8116
8701
|
#
|
8117
8702
|
# For more information about conditional requests, see [RFC
|
8118
|
-
# 7232][
|
8703
|
+
# 7232][7].
|
8119
8704
|
#
|
8120
8705
|
# HTTP Host header syntax
|
8121
8706
|
#
|
@@ -8124,21 +8709,21 @@ module Aws::S3
|
|
8124
8709
|
#
|
8125
8710
|
# The following actions are related to `GetObjectAttributes`:
|
8126
8711
|
#
|
8127
|
-
# * [GetObject][
|
8712
|
+
# * [GetObject][8]
|
8128
8713
|
#
|
8129
|
-
# * [GetObjectAcl][
|
8714
|
+
# * [GetObjectAcl][9]
|
8130
8715
|
#
|
8131
|
-
# * [GetObjectLegalHold][
|
8716
|
+
# * [GetObjectLegalHold][10]
|
8132
8717
|
#
|
8133
|
-
# * [GetObjectLockConfiguration][
|
8718
|
+
# * [GetObjectLockConfiguration][11]
|
8134
8719
|
#
|
8135
|
-
# * [GetObjectRetention][
|
8720
|
+
# * [GetObjectRetention][12]
|
8136
8721
|
#
|
8137
|
-
# * [GetObjectTagging][
|
8722
|
+
# * [GetObjectTagging][13]
|
8138
8723
|
#
|
8139
|
-
# * [HeadObject][
|
8724
|
+
# * [HeadObject][14]
|
8140
8725
|
#
|
8141
|
-
# * [ListParts][
|
8726
|
+
# * [ListParts][15]
|
8142
8727
|
#
|
8143
8728
|
#
|
8144
8729
|
#
|
@@ -8146,15 +8731,17 @@ module Aws::S3
|
|
8146
8731
|
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
|
8147
8732
|
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
8148
8733
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
8149
|
-
# [5]: https://
|
8150
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/
|
8151
|
-
# [7]: https://
|
8152
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8153
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8154
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8155
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8156
|
-
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8157
|
-
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
8734
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
8735
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
8736
|
+
# [7]: https://tools.ietf.org/html/rfc7232
|
8737
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
|
8738
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
|
8739
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html
|
8740
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html
|
8741
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html
|
8742
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
|
8743
|
+
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html
|
8744
|
+
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
|
8158
8745
|
#
|
8159
8746
|
# @option params [required, String] :bucket
|
8160
8747
|
# The name of the bucket that contains the object.
|
@@ -8949,29 +9536,24 @@ module Aws::S3
|
|
8949
9536
|
# have permission to access it. The action returns a `200 OK` if the
|
8950
9537
|
# bucket exists and you have permission to access it.
|
8951
9538
|
#
|
8952
|
-
# If the bucket does not exist or you do not have permission to access
|
9539
|
+
# <note markdown="1"> If the bucket does not exist or you do not have permission to access
|
8953
9540
|
# it, the `HEAD` request returns a generic `400 Bad Request`, `403
|
8954
9541
|
# Forbidden` or `404 Not Found` code. A message body is not included, so
|
8955
9542
|
# you cannot determine the exception beyond these HTTP response codes.
|
8956
9543
|
#
|
8957
|
-
# <note markdown="1"> <b>Directory buckets </b> - You must make requests for this API
|
8958
|
-
# operation to the Zonal endpoint. These endpoints support
|
8959
|
-
# virtual-hosted-style requests in the format
|
8960
|
-
# `https://bucket_name.s3express-az_id.region.amazonaws.com`. Path-style
|
8961
|
-
# requests are not supported. For more information, see [Regional and
|
8962
|
-
# Zonal endpoints][1] in the *Amazon S3 User Guide*.
|
8963
|
-
#
|
8964
9544
|
# </note>
|
8965
9545
|
#
|
8966
9546
|
# Authentication and authorization
|
8967
9547
|
#
|
8968
|
-
# :
|
8969
|
-
#
|
8970
|
-
#
|
9548
|
+
# : **General purpose buckets** - Request to public buckets that grant
|
9549
|
+
# the s3:ListBucket permission publicly do not need to be signed. All
|
9550
|
+
# other `HeadBucket` requests must be authenticated and signed by
|
9551
|
+
# using IAM credentials (access key ID and secret access key for the
|
9552
|
+
# IAM identities). All headers with the `x-amz-` prefix, including
|
8971
9553
|
# `x-amz-copy-source`, must be signed. For more information, see [REST
|
8972
|
-
# Authentication][
|
9554
|
+
# Authentication][1].
|
8973
9555
|
#
|
8974
|
-
# **Directory
|
9556
|
+
# **Directory buckets** - You must use IAM credentials to authenticate
|
8975
9557
|
# and authorize your access to the `HeadBucket` API operation, instead
|
8976
9558
|
# of using the temporary security credentials through the
|
8977
9559
|
# `CreateSession` API operation.
|
@@ -8987,7 +9569,7 @@ module Aws::S3
|
|
8987
9569
|
# you must have permissions to perform the `s3:ListBucket` action.
|
8988
9570
|
# The bucket owner has this permission by default and can grant this
|
8989
9571
|
# permission to others. For more information about permissions, see
|
8990
|
-
# [Managing access permissions to your Amazon S3 resources][
|
9572
|
+
# [Managing access permissions to your Amazon S3 resources][2] in
|
8991
9573
|
# the *Amazon S3 User Guide*.
|
8992
9574
|
#
|
8993
9575
|
# * **Directory bucket permissions** - You must have the <b>
|
@@ -8998,9 +9580,9 @@ module Aws::S3
|
|
8998
9580
|
# `ReadOnly` on the bucket.
|
8999
9581
|
#
|
9000
9582
|
# For more information about example bucket policies, see [Example
|
9001
|
-
# bucket policies for S3 Express One Zone][
|
9583
|
+
# bucket policies for S3 Express One Zone][3] and [Amazon Web
|
9002
9584
|
# Services Identity and Access Management (IAM) identity-based
|
9003
|
-
# policies for S3 Express One Zone][
|
9585
|
+
# policies for S3 Express One Zone][4] in the *Amazon S3 User
|
9004
9586
|
# Guide*.
|
9005
9587
|
#
|
9006
9588
|
# HTTP Host header syntax
|
@@ -9008,13 +9590,21 @@ module Aws::S3
|
|
9008
9590
|
# : <b>Directory buckets </b> - The HTTP Host header syntax is `
|
9009
9591
|
# Bucket_name.s3express-az_id.region.amazonaws.com`.
|
9010
9592
|
#
|
9593
|
+
# <note markdown="1"> You must make requests for this API operation to the Zonal endpoint.
|
9594
|
+
# These endpoints support virtual-hosted-style requests in the format
|
9595
|
+
# `https://bucket_name.s3express-az_id.region.amazonaws.com`.
|
9596
|
+
# Path-style requests are not supported. For more information, see
|
9597
|
+
# [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
|
9011
9598
|
#
|
9599
|
+
# </note>
|
9012
9600
|
#
|
9013
|
-
#
|
9014
|
-
#
|
9015
|
-
# [
|
9016
|
-
# [
|
9017
|
-
# [
|
9601
|
+
#
|
9602
|
+
#
|
9603
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
|
9604
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
|
9605
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
|
9606
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
|
9607
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
9018
9608
|
#
|
9019
9609
|
# @option params [required, String] :bucket
|
9020
9610
|
# The bucket name.
|
@@ -9122,7 +9712,7 @@ module Aws::S3
|
|
9122
9712
|
# returning the object itself. This operation is useful if you're
|
9123
9713
|
# interested only in an object's metadata.
|
9124
9714
|
#
|
9125
|
-
# A `HEAD` request has the same options as a `GET` operation on an
|
9715
|
+
# <note markdown="1"> A `HEAD` request has the same options as a `GET` operation on an
|
9126
9716
|
# object. The response is identical to the `GET` response except that
|
9127
9717
|
# there is no response body. Because of this, if the `HEAD` request
|
9128
9718
|
# generates an error, it returns a generic code, such as `400 Bad
|
@@ -9130,18 +9720,11 @@ module Aws::S3
|
|
9130
9720
|
# `412 Precondition Failed`, or `304 Not Modified`. It's not possible
|
9131
9721
|
# to retrieve the exact exception of these error codes.
|
9132
9722
|
#
|
9723
|
+
# </note>
|
9724
|
+
#
|
9133
9725
|
# Request headers are limited to 8 KB in size. For more information, see
|
9134
9726
|
# [Common Request Headers][1].
|
9135
9727
|
#
|
9136
|
-
# <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
|
9137
|
-
# for this API operation to the Zonal endpoint. These endpoints support
|
9138
|
-
# virtual-hosted-style requests in the format
|
9139
|
-
# `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
|
9140
|
-
# Path-style requests are not supported. For more information, see
|
9141
|
-
# [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
|
9142
|
-
#
|
9143
|
-
# </note>
|
9144
|
-
#
|
9145
9728
|
# Permissions
|
9146
9729
|
#
|
9147
9730
|
# :
|
@@ -9150,7 +9733,7 @@ module Aws::S3
|
|
9150
9733
|
# have the `s3:GetObject` permission. You need the relevant read
|
9151
9734
|
# object (or version) permission for this operation. For more
|
9152
9735
|
# information, see [Actions, resources, and condition keys for
|
9153
|
-
# Amazon S3][
|
9736
|
+
# Amazon S3][2] in the *Amazon S3 User Guide*.
|
9154
9737
|
#
|
9155
9738
|
# If the object you request doesn't exist, the error that Amazon S3
|
9156
9739
|
# returns depends on whether you also have the `s3:ListBucket`
|
@@ -9164,7 +9747,7 @@ module Aws::S3
|
|
9164
9747
|
#
|
9165
9748
|
# * **Directory bucket permissions** - To grant access to this API
|
9166
9749
|
# operation on a directory bucket, we recommend that you use the [
|
9167
|
-
# `CreateSession` ][
|
9750
|
+
# `CreateSession` ][3] API operation for session-based
|
9168
9751
|
# authorization. Specifically, you grant the
|
9169
9752
|
# `s3express:CreateSession` permission to the directory bucket in a
|
9170
9753
|
# bucket policy or an IAM identity-based policy. Then, you make the
|
@@ -9175,7 +9758,14 @@ module Aws::S3
|
|
9175
9758
|
# token for use. Amazon Web Services CLI or SDKs create session and
|
9176
9759
|
# refresh the session token automatically to avoid service
|
9177
9760
|
# interruptions when a session expires. For more information about
|
9178
|
-
# authorization, see [ `CreateSession` ][
|
9761
|
+
# authorization, see [ `CreateSession` ][3].
|
9762
|
+
#
|
9763
|
+
# If you enable `x-amz-checksum-mode` in the request and the object
|
9764
|
+
# is encrypted with Amazon Web Services Key Management Service
|
9765
|
+
# (Amazon Web Services KMS), you must also have the
|
9766
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
9767
|
+
# identity-based policies and KMS key policies for the KMS key to
|
9768
|
+
# retrieve the checksum of the object.
|
9179
9769
|
#
|
9180
9770
|
# Encryption
|
9181
9771
|
# : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
|
@@ -9207,12 +9797,13 @@ module Aws::S3
|
|
9207
9797
|
# * `x-amz-server-side-encryption-customer-key-MD5`
|
9208
9798
|
#
|
9209
9799
|
# For more information about SSE-C, see [Server-Side Encryption (Using
|
9210
|
-
# Customer-Provided Encryption Keys)][
|
9800
|
+
# Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
|
9211
9801
|
# Guide*.
|
9212
9802
|
#
|
9213
|
-
# <note markdown="1">
|
9214
|
-
# server-side encryption
|
9215
|
-
#
|
9803
|
+
# <note markdown="1"> <b>Directory bucket </b> - For directory buckets, there are only two
|
9804
|
+
# supported options for server-side encryption: SSE-S3 and SSE-KMS.
|
9805
|
+
# SSE-C isn't supported. For more information, see [Protecting data
|
9806
|
+
# with server-side encryption][5] in the *Amazon S3 User Guide*.
|
9216
9807
|
#
|
9217
9808
|
# </note>
|
9218
9809
|
#
|
@@ -9241,21 +9832,31 @@ module Aws::S3
|
|
9241
9832
|
# : <b>Directory buckets </b> - The HTTP Host header syntax is `
|
9242
9833
|
# Bucket_name.s3express-az_id.region.amazonaws.com`.
|
9243
9834
|
#
|
9835
|
+
# <note markdown="1"> For directory buckets, you must make requests for this API operation
|
9836
|
+
# to the Zonal endpoint. These endpoints support virtual-hosted-style
|
9837
|
+
# requests in the format
|
9838
|
+
# `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
|
9839
|
+
# `. Path-style requests are not supported. For more information, see
|
9840
|
+
# [Regional and Zonal endpoints][6] in the *Amazon S3 User Guide*.
|
9841
|
+
#
|
9842
|
+
# </note>
|
9843
|
+
#
|
9244
9844
|
# The following actions are related to `HeadObject`:
|
9245
9845
|
#
|
9246
|
-
# * [GetObject][
|
9846
|
+
# * [GetObject][7]
|
9247
9847
|
#
|
9248
|
-
# * [GetObjectAttributes][
|
9848
|
+
# * [GetObjectAttributes][8]
|
9249
9849
|
#
|
9250
9850
|
#
|
9251
9851
|
#
|
9252
9852
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
|
9253
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/
|
9254
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/
|
9255
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/
|
9256
|
-
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/
|
9257
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/
|
9258
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
9853
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
|
9854
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
9855
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
9856
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
9857
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
9858
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
|
9859
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html
|
9259
9860
|
#
|
9260
9861
|
# @option params [required, String] :bucket
|
9261
9862
|
# The name of the bucket that contains the object.
|
@@ -9386,6 +9987,24 @@ module Aws::S3
|
|
9386
9987
|
# the Range is not satisfiable, S3 returns a `416 - Requested Range Not
|
9387
9988
|
# Satisfiable` error.
|
9388
9989
|
#
|
9990
|
+
# @option params [String] :response_cache_control
|
9991
|
+
# Sets the `Cache-Control` header of the response.
|
9992
|
+
#
|
9993
|
+
# @option params [String] :response_content_disposition
|
9994
|
+
# Sets the `Content-Disposition` header of the response.
|
9995
|
+
#
|
9996
|
+
# @option params [String] :response_content_encoding
|
9997
|
+
# Sets the `Content-Encoding` header of the response.
|
9998
|
+
#
|
9999
|
+
# @option params [String] :response_content_language
|
10000
|
+
# Sets the `Content-Language` header of the response.
|
10001
|
+
#
|
10002
|
+
# @option params [String] :response_content_type
|
10003
|
+
# Sets the `Content-Type` header of the response.
|
10004
|
+
#
|
10005
|
+
# @option params [Time,DateTime,Date,Integer,String] :response_expires
|
10006
|
+
# Sets the `Expires` header of the response.
|
10007
|
+
#
|
9389
10008
|
# @option params [String] :version_id
|
9390
10009
|
# Version ID used to reference a specific version of the object.
|
9391
10010
|
#
|
@@ -9453,10 +10072,20 @@ module Aws::S3
|
|
9453
10072
|
# @option params [String] :checksum_mode
|
9454
10073
|
# To retrieve the checksum, this parameter must be enabled.
|
9455
10074
|
#
|
9456
|
-
#
|
9457
|
-
#
|
9458
|
-
# KMS), you must have permission to use the
|
9459
|
-
#
|
10075
|
+
# **General purpose buckets** - If you enable checksum mode and the
|
10076
|
+
# object is uploaded with a [checksum][1] and encrypted with an Key
|
10077
|
+
# Management Service (KMS) key, you must have permission to use the
|
10078
|
+
# `kms:Decrypt` action to retrieve the checksum.
|
10079
|
+
#
|
10080
|
+
# **Directory buckets** - If you enable `ChecksumMode` and the object is
|
10081
|
+
# encrypted with Amazon Web Services Key Management Service (Amazon Web
|
10082
|
+
# Services KMS), you must also have the `kms:GenerateDataKey` and
|
10083
|
+
# `kms:Decrypt` permissions in IAM identity-based policies and KMS key
|
10084
|
+
# policies for the KMS key to retrieve the checksum of the object.
|
10085
|
+
#
|
10086
|
+
#
|
10087
|
+
#
|
10088
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
|
9460
10089
|
#
|
9461
10090
|
# @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
9462
10091
|
#
|
@@ -9528,6 +10157,12 @@ module Aws::S3
|
|
9528
10157
|
# if_unmodified_since: Time.now,
|
9529
10158
|
# key: "ObjectKey", # required
|
9530
10159
|
# range: "Range",
|
10160
|
+
# response_cache_control: "ResponseCacheControl",
|
10161
|
+
# response_content_disposition: "ResponseContentDisposition",
|
10162
|
+
# response_content_encoding: "ResponseContentEncoding",
|
10163
|
+
# response_content_language: "ResponseContentLanguage",
|
10164
|
+
# response_content_type: "ResponseContentType",
|
10165
|
+
# response_expires: Time.now,
|
9531
10166
|
# version_id: "ObjectVersionId",
|
9532
10167
|
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
9533
10168
|
# sse_customer_key: "SSECustomerKey",
|
@@ -10004,10 +10639,28 @@ module Aws::S3
|
|
10004
10639
|
#
|
10005
10640
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
|
10006
10641
|
#
|
10642
|
+
# @option params [Integer] :max_buckets
|
10643
|
+
# Maximum number of buckets to be returned in response. When the number
|
10644
|
+
# is more than the count of buckets that are owned by an Amazon Web
|
10645
|
+
# Services account, return all the buckets in response.
|
10646
|
+
#
|
10647
|
+
# @option params [String] :continuation_token
|
10648
|
+
# `ContinuationToken` indicates to Amazon S3 that the list is being
|
10649
|
+
# continued on this bucket with a token. `ContinuationToken` is
|
10650
|
+
# obfuscated and is not a real key. You can use this `ContinuationToken`
|
10651
|
+
# for pagination of the list results.
|
10652
|
+
#
|
10653
|
+
# Length Constraints: Minimum length of 0. Maximum length of 1024.
|
10654
|
+
#
|
10655
|
+
# Required: No.
|
10656
|
+
#
|
10007
10657
|
# @return [Types::ListBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
10008
10658
|
#
|
10009
10659
|
# * {Types::ListBucketsOutput#buckets #buckets} => Array<Types::Bucket>
|
10010
10660
|
# * {Types::ListBucketsOutput#owner #owner} => Types::Owner
|
10661
|
+
# * {Types::ListBucketsOutput#continuation_token #continuation_token} => String
|
10662
|
+
#
|
10663
|
+
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
|
10011
10664
|
#
|
10012
10665
|
#
|
10013
10666
|
# @example Example: To list all buckets
|
@@ -10039,6 +10692,13 @@ module Aws::S3
|
|
10039
10692
|
# },
|
10040
10693
|
# }
|
10041
10694
|
#
|
10695
|
+
# @example Request syntax with placeholder values
|
10696
|
+
#
|
10697
|
+
# resp = client.list_buckets({
|
10698
|
+
# max_buckets: 1,
|
10699
|
+
# continuation_token: "Token",
|
10700
|
+
# })
|
10701
|
+
#
|
10042
10702
|
# @example Response structure
|
10043
10703
|
#
|
10044
10704
|
# resp.buckets #=> Array
|
@@ -10046,6 +10706,7 @@ module Aws::S3
|
|
10046
10706
|
# resp.buckets[0].creation_date #=> Time
|
10047
10707
|
# resp.owner.display_name #=> String
|
10048
10708
|
# resp.owner.id #=> String
|
10709
|
+
# resp.continuation_token #=> String
|
10049
10710
|
#
|
10050
10711
|
# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets AWS API Documentation
|
10051
10712
|
#
|
@@ -10094,9 +10755,9 @@ module Aws::S3
|
|
10094
10755
|
#
|
10095
10756
|
# @option params [String] :continuation_token
|
10096
10757
|
# `ContinuationToken` indicates to Amazon S3 that the list is being
|
10097
|
-
# continued on this
|
10098
|
-
# obfuscated and is not a real
|
10099
|
-
# for pagination of the list results.
|
10758
|
+
# continued on buckets in this account with a token. `ContinuationToken`
|
10759
|
+
# is obfuscated and is not a real bucket name. You can use this
|
10760
|
+
# `ContinuationToken` for the pagination of the list results.
|
10100
10761
|
#
|
10101
10762
|
# @option params [Integer] :max_directory_buckets
|
10102
10763
|
# Maximum number of buckets to be returned in response. When the number
|
@@ -10140,7 +10801,11 @@ module Aws::S3
|
|
10140
10801
|
#
|
10141
10802
|
# <note markdown="1"> **Directory buckets** - If multipart uploads in a directory bucket are
|
10142
10803
|
# in progress, you can't delete the bucket until all the in-progress
|
10143
|
-
# multipart uploads are aborted or completed.
|
10804
|
+
# multipart uploads are aborted or completed. To delete these
|
10805
|
+
# in-progress multipart uploads, use the `ListMultipartUploads`
|
10806
|
+
# operation to list the in-progress multipart uploads in the bucket and
|
10807
|
+
# use the `AbortMultupartUpload` operation to abort all the in-progress
|
10808
|
+
# multipart uploads.
|
10144
10809
|
#
|
10145
10810
|
# </note>
|
10146
10811
|
#
|
@@ -10306,12 +10971,26 @@ module Aws::S3
|
|
10306
10971
|
# </note>
|
10307
10972
|
#
|
10308
10973
|
# @option params [String] :encoding_type
|
10309
|
-
#
|
10310
|
-
#
|
10311
|
-
# Unicode character
|
10312
|
-
# characters, such as characters with an ASCII value from
|
10313
|
-
# characters that
|
10314
|
-
# parameter to request that Amazon S3 encode the keys in the
|
10974
|
+
# Encoding type used by Amazon S3 to encode the [object keys][1] in the
|
10975
|
+
# response. Responses are encoded only in UTF-8. An object key can
|
10976
|
+
# contain any Unicode character. However, the XML 1.0 parser can't
|
10977
|
+
# parse certain characters, such as characters with an ASCII value from
|
10978
|
+
# 0 to 10. For characters that aren't supported in XML 1.0, you can add
|
10979
|
+
# this parameter to request that Amazon S3 encode the keys in the
|
10980
|
+
# response. For more information about characters to avoid in object key
|
10981
|
+
# names, see [Object key naming guidelines][2].
|
10982
|
+
#
|
10983
|
+
# <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
|
10984
|
+
# in an object's key name will be percent-encoded according to UTF-8
|
10985
|
+
# code values. For example, the object `test_file(3).png` will appear as
|
10986
|
+
# `test_file%283%29.png`.
|
10987
|
+
#
|
10988
|
+
# </note>
|
10989
|
+
#
|
10990
|
+
#
|
10991
|
+
#
|
10992
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
10993
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
|
10315
10994
|
#
|
10316
10995
|
# @option params [String] :key_marker
|
10317
10996
|
# Specifies the multipart upload after which listing should begin.
|
@@ -10603,12 +11282,26 @@ module Aws::S3
|
|
10603
11282
|
# the response.
|
10604
11283
|
#
|
10605
11284
|
# @option params [String] :encoding_type
|
10606
|
-
#
|
10607
|
-
#
|
10608
|
-
# Unicode character
|
10609
|
-
# characters, such as characters with an ASCII value from
|
10610
|
-
# characters that
|
10611
|
-
# parameter to request that Amazon S3 encode the keys in the
|
11285
|
+
# Encoding type used by Amazon S3 to encode the [object keys][1] in the
|
11286
|
+
# response. Responses are encoded only in UTF-8. An object key can
|
11287
|
+
# contain any Unicode character. However, the XML 1.0 parser can't
|
11288
|
+
# parse certain characters, such as characters with an ASCII value from
|
11289
|
+
# 0 to 10. For characters that aren't supported in XML 1.0, you can add
|
11290
|
+
# this parameter to request that Amazon S3 encode the keys in the
|
11291
|
+
# response. For more information about characters to avoid in object key
|
11292
|
+
# names, see [Object key naming guidelines][2].
|
11293
|
+
#
|
11294
|
+
# <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
|
11295
|
+
# in an object's key name will be percent-encoded according to UTF-8
|
11296
|
+
# code values. For example, the object `test_file(3).png` will appear as
|
11297
|
+
# `test_file%283%29.png`.
|
11298
|
+
#
|
11299
|
+
# </note>
|
11300
|
+
#
|
11301
|
+
#
|
11302
|
+
#
|
11303
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
11304
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
|
10612
11305
|
#
|
10613
11306
|
# @option params [String] :key_marker
|
10614
11307
|
# Specifies the key to start with when listing objects in a bucket.
|
@@ -10862,12 +11555,26 @@ module Aws::S3
|
|
10862
11555
|
# A delimiter is a character that you use to group keys.
|
10863
11556
|
#
|
10864
11557
|
# @option params [String] :encoding_type
|
10865
|
-
#
|
10866
|
-
#
|
10867
|
-
# Unicode character
|
10868
|
-
# characters, such as characters with an ASCII value from
|
10869
|
-
# characters that
|
10870
|
-
# parameter to request that Amazon S3 encode the keys in the
|
11558
|
+
# Encoding type used by Amazon S3 to encode the [object keys][1] in the
|
11559
|
+
# response. Responses are encoded only in UTF-8. An object key can
|
11560
|
+
# contain any Unicode character. However, the XML 1.0 parser can't
|
11561
|
+
# parse certain characters, such as characters with an ASCII value from
|
11562
|
+
# 0 to 10. For characters that aren't supported in XML 1.0, you can add
|
11563
|
+
# this parameter to request that Amazon S3 encode the keys in the
|
11564
|
+
# response. For more information about characters to avoid in object key
|
11565
|
+
# names, see [Object key naming guidelines][2].
|
11566
|
+
#
|
11567
|
+
# <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
|
11568
|
+
# in an object's key name will be percent-encoded according to UTF-8
|
11569
|
+
# code values. For example, the object `test_file(3).png` will appear as
|
11570
|
+
# `test_file%283%29.png`.
|
11571
|
+
#
|
11572
|
+
# </note>
|
11573
|
+
#
|
11574
|
+
#
|
11575
|
+
#
|
11576
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
11577
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
|
10871
11578
|
#
|
10872
11579
|
# @option params [String] :marker
|
10873
11580
|
# Marker is where you want Amazon S3 to start listing from. Amazon S3
|
@@ -11009,12 +11716,20 @@ module Aws::S3
|
|
11009
11716
|
# programmatically][1] in the *Amazon S3 User Guide*. To get a list of
|
11010
11717
|
# your buckets, see [ListBuckets][2].
|
11011
11718
|
#
|
11012
|
-
# <note markdown="1"> **
|
11013
|
-
#
|
11014
|
-
#
|
11015
|
-
#
|
11016
|
-
#
|
11017
|
-
#
|
11719
|
+
# <note markdown="1"> * **General purpose bucket** - For general purpose buckets,
|
11720
|
+
# `ListObjectsV2` doesn't return prefixes that are related only to
|
11721
|
+
# in-progress multipart uploads.
|
11722
|
+
#
|
11723
|
+
# * **Directory buckets** - For directory buckets, `ListObjectsV2`
|
11724
|
+
# response includes the prefixes that are related only to in-progress
|
11725
|
+
# multipart uploads.
|
11726
|
+
#
|
11727
|
+
# * **Directory buckets** - For directory buckets, you must make
|
11728
|
+
# requests for this API operation to the Zonal endpoint. These
|
11729
|
+
# endpoints support virtual-hosted-style requests in the format
|
11730
|
+
# `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
|
11731
|
+
# `. Path-style requests are not supported. For more information, see
|
11732
|
+
# [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
|
11018
11733
|
#
|
11019
11734
|
# </note>
|
11020
11735
|
#
|
@@ -11143,10 +11858,26 @@ module Aws::S3
|
|
11143
11858
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
|
11144
11859
|
#
|
11145
11860
|
# @option params [String] :encoding_type
|
11146
|
-
# Encoding type used by Amazon S3 to encode object keys in the
|
11147
|
-
#
|
11148
|
-
#
|
11149
|
-
#
|
11861
|
+
# Encoding type used by Amazon S3 to encode the [object keys][1] in the
|
11862
|
+
# response. Responses are encoded only in UTF-8. An object key can
|
11863
|
+
# contain any Unicode character. However, the XML 1.0 parser can't
|
11864
|
+
# parse certain characters, such as characters with an ASCII value from
|
11865
|
+
# 0 to 10. For characters that aren't supported in XML 1.0, you can add
|
11866
|
+
# this parameter to request that Amazon S3 encode the keys in the
|
11867
|
+
# response. For more information about characters to avoid in object key
|
11868
|
+
# names, see [Object key naming guidelines][2].
|
11869
|
+
#
|
11870
|
+
# <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
|
11871
|
+
# in an object's key name will be percent-encoded according to UTF-8
|
11872
|
+
# code values. For example, the object `test_file(3).png` will appear as
|
11873
|
+
# `test_file%283%29.png`.
|
11874
|
+
#
|
11875
|
+
# </note>
|
11876
|
+
#
|
11877
|
+
#
|
11878
|
+
#
|
11879
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
|
11880
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
|
11150
11881
|
#
|
11151
11882
|
# @option params [Integer] :max_keys
|
11152
11883
|
# Sets the maximum number of keys returned in the response. By default,
|
@@ -12346,66 +13077,156 @@ module Aws::S3
|
|
12346
13077
|
req.send_request(options)
|
12347
13078
|
end
|
12348
13079
|
|
12349
|
-
#
|
13080
|
+
# This operation configures default encryption and Amazon S3 Bucket Keys
|
13081
|
+
# for an existing bucket.
|
12350
13082
|
#
|
12351
|
-
#
|
13083
|
+
# <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
|
13084
|
+
# requests for this API operation to the Regional endpoint. These
|
13085
|
+
# endpoints support path-style requests in the format
|
13086
|
+
# `https://s3express-control.region_code.amazonaws.com/bucket-name `.
|
13087
|
+
# Virtual-hosted-style requests aren't supported. For more information,
|
13088
|
+
# see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*.
|
12352
13089
|
#
|
12353
|
-
#
|
12354
|
-
# encryption and Amazon S3 Bucket Keys for an existing bucket.
|
13090
|
+
# </note>
|
12355
13091
|
#
|
12356
13092
|
# By default, all buckets have a default encryption configuration that
|
12357
|
-
# uses server-side encryption with Amazon S3 managed keys (SSE-S3).
|
12358
|
-
# can optionally configure default encryption for a bucket by using
|
12359
|
-
# server-side encryption with Key Management Service (KMS) keys
|
12360
|
-
# (SSE-KMS) or dual-layer server-side encryption with Amazon Web
|
12361
|
-
# Services KMS keys (DSSE-KMS). If you specify default encryption by
|
12362
|
-
# using SSE-KMS, you can also configure [Amazon S3 Bucket Keys][1]. If
|
12363
|
-
# you use PutBucketEncryption to set your [default bucket encryption][2]
|
12364
|
-
# to SSE-KMS, you should verify that your KMS key ID is correct. Amazon
|
12365
|
-
# S3 does not validate the KMS key ID provided in PutBucketEncryption
|
12366
|
-
# requests.
|
12367
|
-
#
|
12368
|
-
# This action requires Amazon Web Services Signature Version 4. For more
|
12369
|
-
# information, see [ Authenticating Requests (Amazon Web Services
|
12370
|
-
# Signature Version 4)][3].
|
13093
|
+
# uses server-side encryption with Amazon S3 managed keys (SSE-S3).
|
12371
13094
|
#
|
12372
|
-
#
|
12373
|
-
#
|
12374
|
-
#
|
12375
|
-
#
|
12376
|
-
#
|
12377
|
-
#
|
12378
|
-
#
|
13095
|
+
# <note markdown="1"> * **General purpose buckets**
|
13096
|
+
#
|
13097
|
+
# * You can optionally configure default encryption for a bucket by
|
13098
|
+
# using server-side encryption with Key Management Service (KMS)
|
13099
|
+
# keys (SSE-KMS) or dual-layer server-side encryption with Amazon
|
13100
|
+
# Web Services KMS keys (DSSE-KMS). If you specify default
|
13101
|
+
# encryption by using SSE-KMS, you can also configure [Amazon S3
|
13102
|
+
# Bucket Keys][2]. For information about the bucket default
|
13103
|
+
# encryption feature, see [Amazon S3 Bucket Default Encryption][3]
|
13104
|
+
# in the *Amazon S3 User Guide*.
|
13105
|
+
#
|
13106
|
+
# * If you use PutBucketEncryption to set your [default bucket
|
13107
|
+
# encryption][3] to SSE-KMS, you should verify that your KMS key ID
|
13108
|
+
# is correct. Amazon S3 doesn't validate the KMS key ID provided in
|
13109
|
+
# PutBucketEncryption requests.
|
13110
|
+
#
|
13111
|
+
# * <b>Directory buckets </b> - You can optionally configure default
|
13112
|
+
# encryption for a bucket by using server-side encryption with Key
|
13113
|
+
# Management Service (KMS) keys (SSE-KMS).
|
13114
|
+
#
|
13115
|
+
# * We recommend that the bucket's default encryption uses the
|
13116
|
+
# desired encryption configuration and you don't override the
|
13117
|
+
# bucket default encryption in your `CreateSession` requests or
|
13118
|
+
# `PUT` object requests. Then, new objects are automatically
|
13119
|
+
# encrypted with the desired encryption settings. For more
|
13120
|
+
# information about the encryption overriding behaviors in directory
|
13121
|
+
# buckets, see [Specifying server-side encryption with KMS for new
|
13122
|
+
# object uploads][4].
|
13123
|
+
#
|
13124
|
+
# * Your SSE-KMS configuration can only support 1 [customer managed
|
13125
|
+
# key][5] per directory bucket for the lifetime of the bucket.
|
13126
|
+
# [Amazon Web Services managed key][6] (`aws/s3`) isn't supported.
|
13127
|
+
#
|
13128
|
+
# * S3 Bucket Keys are always enabled for `GET` and `PUT` operations
|
13129
|
+
# in a directory bucket and can’t be disabled. S3 Bucket Keys
|
13130
|
+
# aren't supported, when you copy SSE-KMS encrypted objects from
|
13131
|
+
# general purpose buckets to directory buckets, from directory
|
13132
|
+
# buckets to general purpose buckets, or between directory buckets,
|
13133
|
+
# through [CopyObject][7], [UploadPartCopy][8], [the Copy operation
|
13134
|
+
# in Batch Operations][9], or [the import jobs][10]. In this case,
|
13135
|
+
# Amazon S3 makes a call to KMS every time a copy request is made
|
13136
|
+
# for a KMS-encrypted object.
|
13137
|
+
#
|
13138
|
+
# * When you specify an [KMS customer managed key][5] for encryption
|
13139
|
+
# in your directory bucket, only use the key ID or key ARN. The key
|
13140
|
+
# alias format of the KMS key isn't supported.
|
13141
|
+
#
|
13142
|
+
# * For directory buckets, if you use PutBucketEncryption to set your
|
13143
|
+
# [default bucket encryption][3] to SSE-KMS, Amazon S3 validates the
|
13144
|
+
# KMS key ID provided in PutBucketEncryption requests.
|
13145
|
+
#
|
13146
|
+
# </note>
|
13147
|
+
#
|
13148
|
+
# If you're specifying a customer managed KMS key, we recommend using a
|
13149
|
+
# fully qualified KMS key ARN. If you use a KMS key alias instead, then
|
13150
|
+
# KMS resolves the key within the requester’s account. This behavior can
|
13151
|
+
# result in data that's encrypted with a KMS key that belongs to the
|
13152
|
+
# requester, and not the bucket owner.
|
13153
|
+
#
|
13154
|
+
# Also, this action requires Amazon Web Services Signature Version 4.
|
13155
|
+
# For more information, see [ Authenticating Requests (Amazon Web
|
13156
|
+
# Services Signature Version 4)][11].
|
13157
|
+
#
|
13158
|
+
# Permissions
|
13159
|
+
# : * **General purpose bucket permissions** - The
|
13160
|
+
# `s3:PutEncryptionConfiguration` permission is required in a
|
13161
|
+
# policy. The bucket owner has this permission by default. The
|
13162
|
+
# bucket owner can grant this permission to others. For more
|
13163
|
+
# information about permissions, see [Permissions Related to Bucket
|
13164
|
+
# Operations][12] and [Managing Access Permissions to Your Amazon S3
|
13165
|
+
# Resources][13] in the *Amazon S3 User Guide*.
|
13166
|
+
#
|
13167
|
+
# * **Directory bucket permissions** - To grant access to this API
|
13168
|
+
# operation, you must have the
|
13169
|
+
# `s3express:PutEncryptionConfiguration` permission in an IAM
|
13170
|
+
# identity-based policy instead of a bucket policy. Cross-account
|
13171
|
+
# access to this API operation isn't supported. This operation can
|
13172
|
+
# only be performed by the Amazon Web Services account that owns the
|
13173
|
+
# resource. For more information about directory bucket policies and
|
13174
|
+
# permissions, see [Amazon Web Services Identity and Access
|
13175
|
+
# Management (IAM) for S3 Express One Zone][14] in the *Amazon S3
|
13176
|
+
# User Guide*.
|
13177
|
+
#
|
13178
|
+
# To set a directory bucket default encryption with SSE-KMS, you
|
13179
|
+
# must also have the `kms:GenerateDataKey` and the `kms:Decrypt`
|
13180
|
+
# permissions in IAM identity-based policies and KMS key policies
|
13181
|
+
# for the target KMS key.
|
13182
|
+
#
|
13183
|
+
# HTTP Host header syntax
|
13184
|
+
#
|
13185
|
+
# : <b>Directory buckets </b> - The HTTP Host header syntax is
|
13186
|
+
# `s3express-control.region.amazonaws.com`.
|
12379
13187
|
#
|
12380
13188
|
# The following operations are related to `PutBucketEncryption`:
|
12381
13189
|
#
|
12382
|
-
# * [GetBucketEncryption][
|
13190
|
+
# * [GetBucketEncryption][15]
|
12383
13191
|
#
|
12384
|
-
# * [DeleteBucketEncryption][
|
13192
|
+
# * [DeleteBucketEncryption][16]
|
12385
13193
|
#
|
12386
13194
|
#
|
12387
13195
|
#
|
12388
|
-
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/
|
12389
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-
|
12390
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/
|
12391
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
12392
|
-
# [5]: https://docs.aws.amazon.com/
|
12393
|
-
# [6]: https://docs.aws.amazon.com/
|
12394
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
13196
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
13197
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
|
13198
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
|
13199
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
13200
|
+
# [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
13201
|
+
# [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
13202
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
13203
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
13204
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
13205
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
13206
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
|
13207
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
|
13208
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
|
13209
|
+
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
|
13210
|
+
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
|
13211
|
+
# [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
|
12395
13212
|
#
|
12396
13213
|
# @option params [required, String] :bucket
|
12397
13214
|
# Specifies default encryption for a bucket using server-side encryption
|
12398
|
-
# with different key options.
|
12399
|
-
#
|
12400
|
-
#
|
12401
|
-
#
|
12402
|
-
#
|
12403
|
-
#
|
12404
|
-
#
|
13215
|
+
# with different key options.
|
13216
|
+
#
|
13217
|
+
# <b>Directory buckets </b> - When you use this operation with a
|
13218
|
+
# directory bucket, you must use path-style requests in the format
|
13219
|
+
# `https://s3express-control.region_code.amazonaws.com/bucket-name `.
|
13220
|
+
# Virtual-hosted-style requests aren't supported. Directory bucket
|
13221
|
+
# names must be unique in the chosen Availability Zone. Bucket names
|
13222
|
+
# must also follow the format ` bucket_base_name--az_id--x-s3` (for
|
13223
|
+
# example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
|
13224
|
+
# bucket naming restrictions, see [Directory bucket naming rules][1] in
|
13225
|
+
# the *Amazon S3 User Guide*
|
12405
13226
|
#
|
12406
13227
|
#
|
12407
13228
|
#
|
12408
|
-
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/
|
13229
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
|
12409
13230
|
#
|
12410
13231
|
# @option params [String] :content_md5
|
12411
13232
|
# The base64-encoded 128-bit MD5 digest of the server-side encryption
|
@@ -12415,6 +13236,10 @@ module Aws::S3
|
|
12415
13236
|
# (CLI) or Amazon Web Services SDKs, this field is calculated
|
12416
13237
|
# automatically.
|
12417
13238
|
#
|
13239
|
+
# <note markdown="1"> This functionality is not supported for directory buckets.
|
13240
|
+
#
|
13241
|
+
# </note>
|
13242
|
+
#
|
12418
13243
|
# @option params [String] :checksum_algorithm
|
12419
13244
|
# Indicates the algorithm used to create the checksum for the object
|
12420
13245
|
# when you use the SDK. This header will not provide any additional
|
@@ -12427,6 +13252,11 @@ module Aws::S3
|
|
12427
13252
|
# If you provide an individual checksum, Amazon S3 ignores any provided
|
12428
13253
|
# `ChecksumAlgorithm` parameter.
|
12429
13254
|
#
|
13255
|
+
# <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
|
13256
|
+
# is the default checksum algorithm that's used for performance.
|
13257
|
+
#
|
13258
|
+
# </note>
|
13259
|
+
#
|
12430
13260
|
#
|
12431
13261
|
#
|
12432
13262
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
|
@@ -12439,6 +13269,12 @@ module Aws::S3
|
|
12439
13269
|
# you provide does not match the actual owner of the bucket, the request
|
12440
13270
|
# fails with the HTTP status code `403 Forbidden` (access denied).
|
12441
13271
|
#
|
13272
|
+
# <note markdown="1"> For directory buckets, this header is not supported in this API
|
13273
|
+
# operation. If you specify this header, the request fails with the HTTP
|
13274
|
+
# status code `501 Not Implemented`.
|
13275
|
+
#
|
13276
|
+
# </note>
|
13277
|
+
#
|
12442
13278
|
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
|
12443
13279
|
#
|
12444
13280
|
# @example Request syntax with placeholder values
|
@@ -14435,6 +15271,14 @@ module Aws::S3
|
|
14435
15271
|
#
|
14436
15272
|
# </note>
|
14437
15273
|
#
|
15274
|
+
# <note markdown="1"> When you enable versioning on a bucket for the first time, it might
|
15275
|
+
# take a short amount of time for the change to be fully propagated. We
|
15276
|
+
# recommend that you wait for 15 minutes after enabling versioning
|
15277
|
+
# before issuing write operations (`PUT` or `DELETE`) on objects in the
|
15278
|
+
# bucket.
|
15279
|
+
#
|
15280
|
+
# </note>
|
15281
|
+
#
|
14438
15282
|
# Sets the versioning state of an existing bucket.
|
14439
15283
|
#
|
14440
15284
|
# You can set the versioning state with one of the following values:
|
@@ -14828,6 +15672,10 @@ module Aws::S3
|
|
14828
15672
|
# interruptions when a session expires. For more information about
|
14829
15673
|
# authorization, see [ `CreateSession` ][5].
|
14830
15674
|
#
|
15675
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
15676
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
15677
|
+
# identity-based policies and KMS key policies for the KMS key.
|
15678
|
+
#
|
14831
15679
|
# Data integrity with Content-MD5
|
14832
15680
|
# : * **General purpose bucket** - To ensure that data is not corrupted
|
14833
15681
|
# traversing the network, use the `Content-MD5` header. When you use
|
@@ -15110,6 +15958,25 @@ module Aws::S3
|
|
15110
15958
|
#
|
15111
15959
|
# [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
|
15112
15960
|
#
|
15961
|
+
# @option params [String] :if_none_match
|
15962
|
+
# Uploads the object only if the object key name does not already exist
|
15963
|
+
# in the bucket specified. Otherwise, Amazon S3 returns a `412
|
15964
|
+
# Precondition Failed` error.
|
15965
|
+
#
|
15966
|
+
# If a conflicting operation occurs during the upload S3 returns a `409
|
15967
|
+
# ConditionalRequestConflict` response. On a 409 failure you should
|
15968
|
+
# retry the upload.
|
15969
|
+
#
|
15970
|
+
# Expects the '*' (asterisk) character.
|
15971
|
+
#
|
15972
|
+
# For more information about conditional requests, see [RFC 7232][1], or
|
15973
|
+
# [Conditional requests][2] in the *Amazon S3 User Guide*.
|
15974
|
+
#
|
15975
|
+
#
|
15976
|
+
#
|
15977
|
+
# [1]: https://tools.ietf.org/html/rfc7232
|
15978
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
|
15979
|
+
#
|
15113
15980
|
# @option params [String] :grant_full_control
|
15114
15981
|
# Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
|
15115
15982
|
# object.
|
@@ -15158,25 +16025,65 @@ module Aws::S3
|
|
15158
16025
|
# object in Amazon S3 (for example, `AES256`, `aws:kms`,
|
15159
16026
|
# `aws:kms:dsse`).
|
15160
16027
|
#
|
15161
|
-
# <b>General purpose buckets </b> - You have four mutually exclusive
|
15162
|
-
#
|
15163
|
-
#
|
15164
|
-
#
|
15165
|
-
#
|
15166
|
-
#
|
15167
|
-
#
|
15168
|
-
#
|
15169
|
-
#
|
15170
|
-
#
|
15171
|
-
#
|
16028
|
+
# * <b>General purpose buckets </b> - You have four mutually exclusive
|
16029
|
+
# options to protect data using server-side encryption in Amazon S3,
|
16030
|
+
# depending on how you choose to manage the encryption keys.
|
16031
|
+
# Specifically, the encryption key options are Amazon S3 managed keys
|
16032
|
+
# (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
|
16033
|
+
# customer-provided keys (SSE-C). Amazon S3 encrypts data with
|
16034
|
+
# server-side encryption by using Amazon S3 managed keys (SSE-S3) by
|
16035
|
+
# default. You can optionally tell Amazon S3 to encrypt data at rest
|
16036
|
+
# by using server-side encryption with other key options. For more
|
16037
|
+
# information, see [Using Server-Side Encryption][1] in the *Amazon S3
|
16038
|
+
# User Guide*.
|
15172
16039
|
#
|
15173
|
-
# <b>Directory buckets </b> - For directory buckets, only
|
15174
|
-
#
|
15175
|
-
#
|
16040
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
16041
|
+
# two supported options for server-side encryption: server-side
|
16042
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
16043
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
|
16044
|
+
# recommend that the bucket's default encryption uses the desired
|
16045
|
+
# encryption configuration and you don't override the bucket default
|
16046
|
+
# encryption in your `CreateSession` requests or `PUT` object
|
16047
|
+
# requests. Then, new objects are automatically encrypted with the
|
16048
|
+
# desired encryption settings. For more information, see [Protecting
|
16049
|
+
# data with server-side encryption][2] in the *Amazon S3 User Guide*.
|
16050
|
+
# For more information about the encryption overriding behaviors in
|
16051
|
+
# directory buckets, see [Specifying server-side encryption with KMS
|
16052
|
+
# for new object uploads][3].
|
16053
|
+
#
|
16054
|
+
# In the Zonal endpoint API calls (except [CopyObject][4] and
|
16055
|
+
# [UploadPartCopy][5]) using the REST API, the encryption request
|
16056
|
+
# headers must match the encryption settings that are specified in the
|
16057
|
+
# `CreateSession` request. You can't override the values of the
|
16058
|
+
# encryption settings (`x-amz-server-side-encryption`,
|
16059
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`,
|
16060
|
+
# `x-amz-server-side-encryption-context`, and
|
16061
|
+
# `x-amz-server-side-encryption-bucket-key-enabled`) that are
|
16062
|
+
# specified in the `CreateSession` request. You don't need to
|
16063
|
+
# explicitly specify these encryption settings values in Zonal
|
16064
|
+
# endpoint API calls, and Amazon S3 will use the encryption settings
|
16065
|
+
# values from the `CreateSession` request to protect new objects in
|
16066
|
+
# the directory bucket.
|
16067
|
+
#
|
16068
|
+
# <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
|
16069
|
+
# `CreateSession`, the session token refreshes automatically to avoid
|
16070
|
+
# service interruptions when a session expires. The CLI or the Amazon
|
16071
|
+
# Web Services SDKs use the bucket's default encryption configuration
|
16072
|
+
# for the `CreateSession` request. It's not supported to override the
|
16073
|
+
# encryption settings values in the `CreateSession` request. So in the
|
16074
|
+
# Zonal endpoint API calls (except [CopyObject][4] and
|
16075
|
+
# [UploadPartCopy][5]), the encryption request headers must match the
|
16076
|
+
# default encryption configuration of the directory bucket.
|
16077
|
+
#
|
16078
|
+
# </note>
|
15176
16079
|
#
|
15177
16080
|
#
|
15178
16081
|
#
|
15179
16082
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
|
16083
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
16084
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
|
16085
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
16086
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
15180
16087
|
#
|
15181
16088
|
# @option params [String] :storage_class
|
15182
16089
|
# By default, Amazon S3 uses the STANDARD Storage Class to store newly
|
@@ -15256,46 +16163,83 @@ module Aws::S3
|
|
15256
16163
|
# </note>
|
15257
16164
|
#
|
15258
16165
|
# @option params [String] :ssekms_key_id
|
15259
|
-
#
|
15260
|
-
#
|
15261
|
-
#
|
15262
|
-
#
|
15263
|
-
#
|
15264
|
-
#
|
15265
|
-
# x-amz-server-side-encryption
|
15266
|
-
#
|
15267
|
-
#
|
15268
|
-
#
|
16166
|
+
# Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
|
16167
|
+
# object encryption. If the KMS key doesn't exist in the same account
|
16168
|
+
# that's issuing the command, you must use the full Key ARN not the Key
|
16169
|
+
# ID.
|
16170
|
+
#
|
16171
|
+
# **General purpose buckets** - If you specify
|
16172
|
+
# `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
|
16173
|
+
# header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
|
16174
|
+
# to use. If you specify `x-amz-server-side-encryption:aws:kms` or
|
16175
|
+
# `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
|
16176
|
+
# `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
|
16177
|
+
# Amazon Web Services managed key (`aws/s3`) to protect the data.
|
16178
|
+
#
|
16179
|
+
# **Directory buckets** - If you specify `x-amz-server-side-encryption`
|
16180
|
+
# with `aws:kms`, you must specify the `
|
16181
|
+
# x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
|
16182
|
+
# ID or Key ARN) of the KMS symmetric encryption customer managed key to
|
16183
|
+
# use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
|
16184
|
+
# key ID or key ARN. The key alias format of the KMS key isn't
|
16185
|
+
# supported. Your SSE-KMS configuration can only support 1 [customer
|
16186
|
+
# managed key][1] per directory bucket for the lifetime of the bucket.
|
16187
|
+
# [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
|
16188
|
+
#
|
16189
|
+
#
|
16190
|
+
#
|
16191
|
+
# [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
|
16192
|
+
# [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
|
15269
16193
|
#
|
15270
|
-
#
|
16194
|
+
# @option params [String] :ssekms_encryption_context
|
16195
|
+
# Specifies the Amazon Web Services KMS Encryption Context as an
|
16196
|
+
# additional encryption context to use for object encryption. The value
|
16197
|
+
# of this header is a Base64-encoded string of a UTF-8 encoded JSON,
|
16198
|
+
# which contains the encryption context as key-value pairs. This value
|
16199
|
+
# is stored as object metadata and automatically gets passed on to
|
16200
|
+
# Amazon Web Services KMS for future `GetObject` operations on this
|
16201
|
+
# object.
|
15271
16202
|
#
|
15272
|
-
#
|
16203
|
+
# **General purpose buckets** - This value must be explicitly added
|
16204
|
+
# during `CopyObject` operations if you want an additional encryption
|
16205
|
+
# context for your object. For more information, see [Encryption
|
16206
|
+
# context][1] in the *Amazon S3 User Guide*.
|
15273
16207
|
#
|
15274
|
-
#
|
15275
|
-
#
|
15276
|
-
#
|
15277
|
-
#
|
15278
|
-
# value is stored as object metadata and automatically gets passed on to
|
15279
|
-
# Amazon Web Services KMS for future `GetObject` or `CopyObject`
|
15280
|
-
# operations on this object. This value must be explicitly added during
|
15281
|
-
# `CopyObject` operations.
|
16208
|
+
# **Directory buckets** - You can optionally provide an explicit
|
16209
|
+
# encryption context value. The value must match the default encryption
|
16210
|
+
# context - the bucket Amazon Resource Name (ARN). An additional
|
16211
|
+
# encryption context value is not supported.
|
15282
16212
|
#
|
15283
|
-
# <note markdown="1"> This functionality is not supported for directory buckets.
|
15284
16213
|
#
|
15285
|
-
#
|
16214
|
+
#
|
16215
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
|
15286
16216
|
#
|
15287
16217
|
# @option params [Boolean] :bucket_key_enabled
|
15288
16218
|
# Specifies whether Amazon S3 should use an S3 Bucket Key for object
|
15289
16219
|
# encryption with server-side encryption using Key Management Service
|
15290
|
-
# (KMS) keys (SSE-KMS).
|
15291
|
-
#
|
16220
|
+
# (KMS) keys (SSE-KMS).
|
16221
|
+
#
|
16222
|
+
# **General purpose buckets** - Setting this header to `true` causes
|
16223
|
+
# Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
|
16224
|
+
# Also, specifying this header with a PUT action doesn't affect
|
16225
|
+
# bucket-level settings for S3 Bucket Key.
|
15292
16226
|
#
|
15293
|
-
#
|
15294
|
-
#
|
16227
|
+
# **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
|
16228
|
+
# and `PUT` operations in a directory bucket and can’t be disabled. S3
|
16229
|
+
# Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
|
16230
|
+
# from general purpose buckets to directory buckets, from directory
|
16231
|
+
# buckets to general purpose buckets, or between directory buckets,
|
16232
|
+
# through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
|
16233
|
+
# Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
|
16234
|
+
# makes a call to KMS every time a copy request is made for a
|
16235
|
+
# KMS-encrypted object.
|
15295
16236
|
#
|
15296
|
-
# <note markdown="1"> This functionality is not supported for directory buckets.
|
15297
16237
|
#
|
15298
|
-
#
|
16238
|
+
#
|
16239
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
16240
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
16241
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
|
16242
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
|
15299
16243
|
#
|
15300
16244
|
# @option params [String] :request_payer
|
15301
16245
|
# Confirms that the requester knows that they will be charged for the
|
@@ -15373,41 +16317,38 @@ module Aws::S3
|
|
15373
16317
|
# * {Types::PutObjectOutput#request_charged #request_charged} => String
|
15374
16318
|
#
|
15375
16319
|
#
|
15376
|
-
# @example Example: To upload an object
|
16320
|
+
# @example Example: To upload an object and specify optional tags
|
15377
16321
|
#
|
15378
|
-
# # The following example uploads an object
|
15379
|
-
# #
|
16322
|
+
# # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
|
16323
|
+
# # S3 returns version ID of the newly created object.
|
15380
16324
|
#
|
15381
16325
|
# resp = client.put_object({
|
15382
|
-
# body: "HappyFace.jpg",
|
16326
|
+
# body: "c:\\HappyFace.jpg",
|
15383
16327
|
# bucket: "examplebucket",
|
15384
16328
|
# key: "HappyFace.jpg",
|
16329
|
+
# tagging: "key1=value1&key2=value2",
|
15385
16330
|
# })
|
15386
16331
|
#
|
15387
16332
|
# resp.to_h outputs the following:
|
15388
16333
|
# {
|
15389
16334
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15390
|
-
# version_id: "
|
16335
|
+
# version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
|
15391
16336
|
# }
|
15392
16337
|
#
|
15393
|
-
# @example Example: To
|
16338
|
+
# @example Example: To create an object.
|
15394
16339
|
#
|
15395
|
-
# # The following example
|
15396
|
-
# # storage class and use server-side encryption.
|
16340
|
+
# # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
|
15397
16341
|
#
|
15398
16342
|
# resp = client.put_object({
|
15399
|
-
# body: "
|
16343
|
+
# body: "filetoupload",
|
15400
16344
|
# bucket: "examplebucket",
|
15401
|
-
# key: "
|
15402
|
-
# server_side_encryption: "AES256",
|
15403
|
-
# storage_class: "STANDARD_IA",
|
16345
|
+
# key: "objectkey",
|
15404
16346
|
# })
|
15405
16347
|
#
|
15406
16348
|
# resp.to_h outputs the following:
|
15407
16349
|
# {
|
15408
16350
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15409
|
-
#
|
15410
|
-
# version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
|
16351
|
+
# version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
|
15411
16352
|
# }
|
15412
16353
|
#
|
15413
16354
|
# @example Example: To upload object and specify user-defined metadata
|
@@ -15431,76 +16372,79 @@ module Aws::S3
|
|
15431
16372
|
# version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
|
15432
16373
|
# }
|
15433
16374
|
#
|
15434
|
-
# @example Example: To upload an object
|
16375
|
+
# @example Example: To upload an object
|
15435
16376
|
#
|
15436
|
-
# # The following example uploads
|
15437
|
-
# #
|
16377
|
+
# # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
|
16378
|
+
# # syntax. S3 returns VersionId of the newly created object.
|
15438
16379
|
#
|
15439
16380
|
# resp = client.put_object({
|
15440
|
-
#
|
15441
|
-
# body: "filetoupload",
|
16381
|
+
# body: "HappyFace.jpg",
|
15442
16382
|
# bucket: "examplebucket",
|
15443
|
-
# key: "
|
16383
|
+
# key: "HappyFace.jpg",
|
15444
16384
|
# })
|
15445
16385
|
#
|
15446
16386
|
# resp.to_h outputs the following:
|
15447
16387
|
# {
|
15448
16388
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15449
|
-
# version_id: "
|
16389
|
+
# version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
|
15450
16390
|
# }
|
15451
16391
|
#
|
15452
|
-
# @example Example: To
|
16392
|
+
# @example Example: To upload an object and specify server-side encryption and object tags
|
15453
16393
|
#
|
15454
|
-
# # The following example
|
16394
|
+
# # The following example uploads an object. The request specifies the optional server-side encryption option. The request
|
16395
|
+
# # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
|
15455
16396
|
#
|
15456
16397
|
# resp = client.put_object({
|
15457
16398
|
# body: "filetoupload",
|
15458
16399
|
# bucket: "examplebucket",
|
15459
|
-
# key: "
|
16400
|
+
# key: "exampleobject",
|
16401
|
+
# server_side_encryption: "AES256",
|
16402
|
+
# tagging: "key1=value1&key2=value2",
|
15460
16403
|
# })
|
15461
16404
|
#
|
15462
16405
|
# resp.to_h outputs the following:
|
15463
16406
|
# {
|
15464
16407
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15465
|
-
#
|
16408
|
+
# server_side_encryption: "AES256",
|
16409
|
+
# version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
|
15466
16410
|
# }
|
15467
16411
|
#
|
15468
|
-
# @example Example: To upload an object and specify
|
16412
|
+
# @example Example: To upload an object and specify canned ACL.
|
15469
16413
|
#
|
15470
|
-
# # The following example uploads
|
15471
|
-
# #
|
16414
|
+
# # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
|
16415
|
+
# # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
|
15472
16416
|
#
|
15473
16417
|
# resp = client.put_object({
|
16418
|
+
# acl: "authenticated-read",
|
15474
16419
|
# body: "filetoupload",
|
15475
16420
|
# bucket: "examplebucket",
|
15476
16421
|
# key: "exampleobject",
|
15477
|
-
# server_side_encryption: "AES256",
|
15478
|
-
# tagging: "key1=value1&key2=value2",
|
15479
16422
|
# })
|
15480
16423
|
#
|
15481
16424
|
# resp.to_h outputs the following:
|
15482
16425
|
# {
|
15483
16426
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15484
|
-
#
|
15485
|
-
# version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
|
16427
|
+
# version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
|
15486
16428
|
# }
|
15487
16429
|
#
|
15488
|
-
# @example Example: To upload an object
|
16430
|
+
# @example Example: To upload an object (specify optional headers)
|
15489
16431
|
#
|
15490
|
-
# # The following example uploads an object. The request specifies optional
|
15491
|
-
# #
|
16432
|
+
# # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
|
16433
|
+
# # storage class and use server-side encryption.
|
15492
16434
|
#
|
15493
16435
|
# resp = client.put_object({
|
15494
|
-
# body: "
|
16436
|
+
# body: "HappyFace.jpg",
|
15495
16437
|
# bucket: "examplebucket",
|
15496
16438
|
# key: "HappyFace.jpg",
|
15497
|
-
#
|
16439
|
+
# server_side_encryption: "AES256",
|
16440
|
+
# storage_class: "STANDARD_IA",
|
15498
16441
|
# })
|
15499
16442
|
#
|
15500
16443
|
# resp.to_h outputs the following:
|
15501
16444
|
# {
|
15502
16445
|
# etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
|
15503
|
-
#
|
16446
|
+
# server_side_encryption: "AES256",
|
16447
|
+
# version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
|
15504
16448
|
# }
|
15505
16449
|
#
|
15506
16450
|
# @example Streaming a file from disk
|
@@ -15528,6 +16472,7 @@ module Aws::S3
|
|
15528
16472
|
# checksum_sha1: "ChecksumSHA1",
|
15529
16473
|
# checksum_sha256: "ChecksumSHA256",
|
15530
16474
|
# expires: Time.now,
|
16475
|
+
# if_none_match: "IfNoneMatch",
|
15531
16476
|
# grant_full_control: "GrantFullControl",
|
15532
16477
|
# grant_read: "GrantRead",
|
15533
16478
|
# grant_read_acp: "GrantReadACP",
|
@@ -16627,6 +17572,10 @@ module Aws::S3
|
|
16627
17572
|
#
|
16628
17573
|
# </note>
|
16629
17574
|
#
|
17575
|
+
# The `SELECT` job type for the RestoreObject operation is no longer
|
17576
|
+
# available to new customers. Existing customers of Amazon S3 Select can
|
17577
|
+
# continue to use the feature as usual. [Learn more][1]
|
17578
|
+
#
|
16630
17579
|
# Restores an archived copy of an object back into Amazon S3
|
16631
17580
|
#
|
16632
17581
|
# This functionality is not supported for Amazon S3 on Outposts.
|
@@ -16640,11 +17589,11 @@ module Aws::S3
|
|
16640
17589
|
# For more information about the `S3` structure in the request body, see
|
16641
17590
|
# the following:
|
16642
17591
|
#
|
16643
|
-
# * [PutObject][
|
17592
|
+
# * [PutObject][2]
|
16644
17593
|
#
|
16645
|
-
# * [Managing Access with ACLs][
|
17594
|
+
# * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
|
16646
17595
|
#
|
16647
|
-
# * [Protecting Data Using Server-Side Encryption][
|
17596
|
+
# * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
|
16648
17597
|
# User Guide*
|
16649
17598
|
#
|
16650
17599
|
# Permissions
|
@@ -16653,8 +17602,8 @@ module Aws::S3
|
|
16653
17602
|
# `s3:RestoreObject` action. The bucket owner has this permission by
|
16654
17603
|
# default and can grant this permission to others. For more
|
16655
17604
|
# information about permissions, see [Permissions Related to Bucket
|
16656
|
-
# Subresource Operations][
|
16657
|
-
# Amazon S3 Resources][
|
17605
|
+
# Subresource Operations][5] and [Managing Access Permissions to Your
|
17606
|
+
# Amazon S3 Resources][6] in the *Amazon S3 User Guide*.
|
16658
17607
|
#
|
16659
17608
|
# Restoring objects
|
16660
17609
|
#
|
@@ -16717,11 +17666,11 @@ module Aws::S3
|
|
16717
17666
|
#
|
16718
17667
|
# For more information about archive retrieval options and provisioned
|
16719
17668
|
# capacity for `Expedited` data access, see [Restoring Archived
|
16720
|
-
# Objects][
|
17669
|
+
# Objects][7] in the *Amazon S3 User Guide*.
|
16721
17670
|
#
|
16722
17671
|
# You can use Amazon S3 restore speed upgrade to change the restore
|
16723
17672
|
# speed to a faster speed while it is in progress. For more
|
16724
|
-
# information, see [ Upgrading the speed of an in-progress restore][
|
17673
|
+
# information, see [ Upgrading the speed of an in-progress restore][8]
|
16725
17674
|
# in the *Amazon S3 User Guide*.
|
16726
17675
|
#
|
16727
17676
|
# To get the status of object restoration, you can send a `HEAD`
|
@@ -16729,7 +17678,7 @@ module Aws::S3
|
|
16729
17678
|
# provides information about the restoration status, in the response.
|
16730
17679
|
# You can use Amazon S3 event notifications to notify you when a
|
16731
17680
|
# restore is initiated or completed. For more information, see
|
16732
|
-
# [Configuring Amazon S3 Event Notifications][
|
17681
|
+
# [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
|
16733
17682
|
# User Guide*.
|
16734
17683
|
#
|
16735
17684
|
# After restoring an archived object, you can update the restoration
|
@@ -16745,8 +17694,8 @@ module Aws::S3
|
|
16745
17694
|
# restore an object copy for 10 days, but the object is scheduled to
|
16746
17695
|
# expire in 3 days, Amazon S3 deletes the object in 3 days. For more
|
16747
17696
|
# information about lifecycle configuration, see
|
16748
|
-
# [PutBucketLifecycleConfiguration][
|
16749
|
-
# Management][
|
17697
|
+
# [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
|
17698
|
+
# Management][11] in *Amazon S3 User Guide*.
|
16750
17699
|
#
|
16751
17700
|
# Responses
|
16752
17701
|
#
|
@@ -16784,23 +17733,24 @@ module Aws::S3
|
|
16784
17733
|
#
|
16785
17734
|
# The following operations are related to `RestoreObject`:
|
16786
17735
|
#
|
16787
|
-
# * [PutBucketLifecycleConfiguration][
|
17736
|
+
# * [PutBucketLifecycleConfiguration][10]
|
16788
17737
|
#
|
16789
|
-
# * [GetBucketNotificationConfiguration][
|
17738
|
+
# * [GetBucketNotificationConfiguration][12]
|
16790
17739
|
#
|
16791
17740
|
#
|
16792
17741
|
#
|
16793
|
-
# [1]:
|
16794
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/
|
16795
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/
|
16796
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/
|
16797
|
-
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-
|
16798
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/
|
16799
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
|
16800
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/
|
16801
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/
|
16802
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/
|
16803
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17742
|
+
# [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
|
17743
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
|
17744
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
|
17745
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
|
17746
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
|
17747
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
|
17748
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
|
17749
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
|
17750
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
|
17751
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
|
17752
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
|
17753
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
|
16804
17754
|
#
|
16805
17755
|
# @option params [required, String] :bucket
|
16806
17756
|
# The bucket name containing the object to restore.
|
@@ -17012,6 +17962,10 @@ module Aws::S3
|
|
17012
17962
|
#
|
17013
17963
|
# </note>
|
17014
17964
|
#
|
17965
|
+
# The SelectObjectContent operation is no longer available to new
|
17966
|
+
# customers. Existing customers of Amazon S3 Select can continue to use
|
17967
|
+
# the operation as usual. [Learn more][1]
|
17968
|
+
#
|
17015
17969
|
# This action filters the contents of an Amazon S3 object based on a
|
17016
17970
|
# simple structured query language (SQL) statement. In the request,
|
17017
17971
|
# along with the SQL expression, you must also specify a data
|
@@ -17023,7 +17977,7 @@ module Aws::S3
|
|
17023
17977
|
# This functionality is not supported for Amazon S3 on Outposts.
|
17024
17978
|
#
|
17025
17979
|
# For more information about Amazon S3 Select, see [Selecting Content
|
17026
|
-
# from Objects][
|
17980
|
+
# from Objects][2] and [SELECT Command][3] in the *Amazon S3 User
|
17027
17981
|
# Guide*.
|
17028
17982
|
#
|
17029
17983
|
#
|
@@ -17033,7 +17987,7 @@ module Aws::S3
|
|
17033
17987
|
# : You must have the `s3:GetObject` permission for this
|
17034
17988
|
# operation. Amazon S3 Select does not support anonymous access. For
|
17035
17989
|
# more information about permissions, see [Specifying Permissions in a
|
17036
|
-
# Policy][
|
17990
|
+
# Policy][4] in the *Amazon S3 User Guide*.
|
17037
17991
|
#
|
17038
17992
|
# Object Data Formats
|
17039
17993
|
#
|
@@ -17058,31 +18012,31 @@ module Aws::S3
|
|
17058
18012
|
#
|
17059
18013
|
# For objects that are encrypted with customer-provided encryption
|
17060
18014
|
# keys (SSE-C), you must use HTTPS, and you must use the headers
|
17061
|
-
# that are documented in the [GetObject][
|
18015
|
+
# that are documented in the [GetObject][5]. For more information
|
17062
18016
|
# about SSE-C, see [Server-Side Encryption (Using Customer-Provided
|
17063
|
-
# Encryption Keys)][
|
18017
|
+
# Encryption Keys)][6] in the *Amazon S3 User Guide*.
|
17064
18018
|
#
|
17065
18019
|
# For objects that are encrypted with Amazon S3 managed keys
|
17066
18020
|
# (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
|
17067
18021
|
# encryption is handled transparently, so you don't need to specify
|
17068
18022
|
# anything. For more information about server-side encryption,
|
17069
18023
|
# including SSE-S3 and SSE-KMS, see [Protecting Data Using
|
17070
|
-
# Server-Side Encryption][
|
18024
|
+
# Server-Side Encryption][7] in the *Amazon S3 User Guide*.
|
17071
18025
|
#
|
17072
18026
|
# Working with the Response Body
|
17073
18027
|
#
|
17074
18028
|
# : Given the response size is unknown, Amazon S3 Select streams the
|
17075
18029
|
# response as a series of messages and includes a `Transfer-Encoding`
|
17076
18030
|
# header with `chunked` as its value in the response. For more
|
17077
|
-
# information, see [Appendix: SelectObjectContent Response][
|
18031
|
+
# information, see [Appendix: SelectObjectContent Response][8].
|
17078
18032
|
#
|
17079
18033
|
# GetObject Support
|
17080
18034
|
#
|
17081
18035
|
# : The `SelectObjectContent` action does not support the following
|
17082
|
-
# `GetObject` functionality. For more information, see [GetObject][
|
18036
|
+
# `GetObject` functionality. For more information, see [GetObject][5].
|
17083
18037
|
#
|
17084
18038
|
# * `Range`: Although you can specify a scan range for an Amazon S3
|
17085
|
-
# Select request (see [SelectObjectContentRequest - ScanRange][
|
18039
|
+
# Select request (see [SelectObjectContentRequest - ScanRange][9] in
|
17086
18040
|
# the request parameters), you cannot specify the range of bytes of
|
17087
18041
|
# an object to return.
|
17088
18042
|
#
|
@@ -17093,36 +18047,37 @@ module Aws::S3
|
|
17093
18047
|
# storage classes, nor objects in the `ARCHIVE_ACCESS` or
|
17094
18048
|
# `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
|
17095
18049
|
# storage class. For more information about storage classes, see
|
17096
|
-
# [Using Amazon S3 storage classes][
|
18050
|
+
# [Using Amazon S3 storage classes][10] in the *Amazon S3 User
|
17097
18051
|
# Guide*.
|
17098
18052
|
#
|
17099
18053
|
# Special Errors
|
17100
18054
|
#
|
17101
18055
|
# : For a list of special errors for this operation, see [List of SELECT
|
17102
|
-
# Object Content Error Codes][
|
18056
|
+
# Object Content Error Codes][11]
|
17103
18057
|
#
|
17104
18058
|
# The following operations are related to `SelectObjectContent`:
|
17105
18059
|
#
|
17106
|
-
# * [GetObject][
|
18060
|
+
# * [GetObject][5]
|
17107
18061
|
#
|
17108
|
-
# * [GetBucketLifecycleConfiguration][
|
18062
|
+
# * [GetBucketLifecycleConfiguration][12]
|
17109
18063
|
#
|
17110
|
-
# * [PutBucketLifecycleConfiguration][
|
18064
|
+
# * [PutBucketLifecycleConfiguration][13]
|
17111
18065
|
#
|
17112
18066
|
#
|
17113
18067
|
#
|
17114
|
-
# [1]:
|
17115
|
-
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17116
|
-
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17117
|
-
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17118
|
-
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17119
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/
|
17120
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17121
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
17122
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17123
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17124
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
17125
|
-
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
18068
|
+
# [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
|
18069
|
+
# [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
|
18070
|
+
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
|
18071
|
+
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
|
18072
|
+
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
|
18073
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
|
18074
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
|
18075
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
|
18076
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
|
18077
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
|
18078
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
|
18079
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
|
18080
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
|
17126
18081
|
#
|
17127
18082
|
# @option params [required, String] :bucket
|
17128
18083
|
# The S3 bucket.
|
@@ -17206,22 +18161,22 @@ module Aws::S3
|
|
17206
18161
|
#
|
17207
18162
|
# @example EventStream Operation Example
|
17208
18163
|
#
|
17209
|
-
# You can process event once it arrives immediately, or wait until
|
17210
|
-
# full response complete and iterate through eventstream enumerator.
|
18164
|
+
# You can process the event once it arrives immediately, or wait until the
|
18165
|
+
# full response is complete and iterate through the eventstream enumerator.
|
17211
18166
|
#
|
17212
18167
|
# To interact with event immediately, you need to register #select_object_content
|
17213
|
-
# with callbacks
|
17214
|
-
#
|
18168
|
+
# with callbacks. Callbacks can be registered for specific events or for all
|
18169
|
+
# events, including error events.
|
17215
18170
|
#
|
17216
|
-
# Callbacks can be passed
|
17217
|
-
# statement attached to #select_object_content call directly. Hybrid
|
17218
|
-
# is also supported.
|
18171
|
+
# Callbacks can be passed into the `:event_stream_handler` option or within a
|
18172
|
+
# block statement attached to the #select_object_content call directly. Hybrid
|
18173
|
+
# pattern of both is also supported.
|
17219
18174
|
#
|
17220
|
-
# `:event_stream_handler` option takes in either Proc object or
|
18175
|
+
# `:event_stream_handler` option takes in either a Proc object or
|
17221
18176
|
# Aws::S3::EventStreams::SelectObjectContentEventStream object.
|
17222
18177
|
#
|
17223
|
-
# Usage pattern a):
|
17224
|
-
# Example for registering callbacks for all event types and error event
|
18178
|
+
# Usage pattern a): Callbacks with a block attached to #select_object_content
|
18179
|
+
# Example for registering callbacks for all event types and an error event
|
17225
18180
|
#
|
17226
18181
|
# client.select_object_content( # params input# ) do |stream|
|
17227
18182
|
# stream.on_error_event do |event|
|
@@ -17241,9 +18196,9 @@ module Aws::S3
|
|
17241
18196
|
#
|
17242
18197
|
# end
|
17243
18198
|
#
|
17244
|
-
# Usage pattern b):
|
18199
|
+
# Usage pattern b): Pass in `:event_stream_handler` for #select_object_content
|
17245
18200
|
#
|
17246
|
-
# 1)
|
18201
|
+
# 1) Create a Aws::S3::EventStreams::SelectObjectContentEventStream object
|
17247
18202
|
# Example for registering callbacks with specific events
|
17248
18203
|
#
|
17249
18204
|
# handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new
|
@@ -17265,7 +18220,7 @@ module Aws::S3
|
|
17265
18220
|
#
|
17266
18221
|
# client.select_object_content( # params input #, event_stream_handler: handler)
|
17267
18222
|
#
|
17268
|
-
# 2)
|
18223
|
+
# 2) Use a Ruby Proc object
|
17269
18224
|
# Example for registering callbacks with specific events
|
17270
18225
|
#
|
17271
18226
|
# handler = Proc.new do |stream|
|
@@ -17288,7 +18243,7 @@ module Aws::S3
|
|
17288
18243
|
#
|
17289
18244
|
# client.select_object_content( # params input #, event_stream_handler: handler)
|
17290
18245
|
#
|
17291
|
-
# Usage pattern c):
|
18246
|
+
# Usage pattern c): Hybrid pattern of a) and b)
|
17292
18247
|
#
|
17293
18248
|
# handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new
|
17294
18249
|
# handler.on_records_event do |event|
|
@@ -17318,8 +18273,7 @@ module Aws::S3
|
|
17318
18273
|
# end
|
17319
18274
|
# end
|
17320
18275
|
#
|
17321
|
-
#
|
17322
|
-
# iterate through events after response complete.
|
18276
|
+
# You can also iterate through events after the response complete.
|
17323
18277
|
#
|
17324
18278
|
# Events are available at resp.payload # => Enumerator
|
17325
18279
|
# For parameter input example, please refer to following request syntax
|
@@ -17470,14 +18424,27 @@ module Aws::S3
|
|
17470
18424
|
# </note>
|
17471
18425
|
#
|
17472
18426
|
# Permissions
|
17473
|
-
# : * **General purpose bucket permissions** -
|
17474
|
-
#
|
17475
|
-
#
|
17476
|
-
#
|
18427
|
+
# : * **General purpose bucket permissions** - To perform a multipart
|
18428
|
+
# upload with encryption using an Key Management Service key, the
|
18429
|
+
# requester must have permission to the `kms:Decrypt` and
|
18430
|
+
# `kms:GenerateDataKey` actions on the key. The requester must also
|
18431
|
+
# have permissions for the `kms:GenerateDataKey` action for the
|
18432
|
+
# `CreateMultipartUpload` API. Then, the requester needs permissions
|
18433
|
+
# for the `kms:Decrypt` action on the `UploadPart` and
|
18434
|
+
# `UploadPartCopy` APIs.
|
18435
|
+
#
|
18436
|
+
# These permissions are required because Amazon S3 must decrypt and
|
18437
|
+
# read data from the encrypted file parts before it completes the
|
18438
|
+
# multipart upload. For more information about KMS permissions, see
|
18439
|
+
# [Protecting data using server-side encryption with KMS][6] in the
|
18440
|
+
# *Amazon S3 User Guide*. For information about the permissions
|
18441
|
+
# required to use the multipart upload API, see [Multipart upload
|
18442
|
+
# and permissions][7] and [Multipart upload API and permissions][8]
|
18443
|
+
# in the *Amazon S3 User Guide*.
|
17477
18444
|
#
|
17478
18445
|
# * **Directory bucket permissions** - To grant access to this API
|
17479
18446
|
# operation on a directory bucket, we recommend that you use the [
|
17480
|
-
# `CreateSession` ][
|
18447
|
+
# `CreateSession` ][9] API operation for session-based
|
17481
18448
|
# authorization. Specifically, you grant the
|
17482
18449
|
# `s3express:CreateSession` permission to the directory bucket in a
|
17483
18450
|
# bucket policy or an IAM identity-based policy. Then, you make the
|
@@ -17488,7 +18455,11 @@ module Aws::S3
|
|
17488
18455
|
# token for use. Amazon Web Services CLI or SDKs create session and
|
17489
18456
|
# refresh the session token automatically to avoid service
|
17490
18457
|
# interruptions when a session expires. For more information about
|
17491
|
-
# authorization, see [ `CreateSession` ][
|
18458
|
+
# authorization, see [ `CreateSession` ][9].
|
18459
|
+
#
|
18460
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
18461
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
18462
|
+
# identity-based policies and KMS key policies for the KMS key.
|
17492
18463
|
#
|
17493
18464
|
# Data integrity
|
17494
18465
|
#
|
@@ -17500,7 +18471,7 @@ module Aws::S3
|
|
17500
18471
|
# then Amazon Web Services S3 uses the `x-amz-content-sha256` header
|
17501
18472
|
# as a checksum instead of `Content-MD5`. For more information see
|
17502
18473
|
# [Authenticating Requests: Using the Authorization Header (Amazon Web
|
17503
|
-
# Services Signature Version 4)][
|
18474
|
+
# Services Signature Version 4)][10].
|
17504
18475
|
#
|
17505
18476
|
# <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
|
17506
18477
|
# You can use checksum algorithms to check object integrity.
|
@@ -17541,12 +18512,13 @@ module Aws::S3
|
|
17541
18512
|
#
|
17542
18513
|
# * x-amz-server-side-encryption-customer-key-MD5
|
17543
18514
|
#
|
17544
|
-
#
|
17545
|
-
#
|
17546
|
-
# supported.
|
18515
|
+
# For more information, see [Using Server-Side Encryption][11] in
|
18516
|
+
# the *Amazon S3 User Guide*.
|
17547
18517
|
#
|
17548
|
-
#
|
17549
|
-
#
|
18518
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
18519
|
+
# two supported options for server-side encryption: server-side
|
18520
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
18521
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`).
|
17550
18522
|
#
|
17551
18523
|
# Special errors
|
17552
18524
|
# : * Error Code: `NoSuchUpload`
|
@@ -17568,13 +18540,13 @@ module Aws::S3
|
|
17568
18540
|
#
|
17569
18541
|
# * [CreateMultipartUpload][2]
|
17570
18542
|
#
|
17571
|
-
# * [CompleteMultipartUpload][
|
18543
|
+
# * [CompleteMultipartUpload][12]
|
17572
18544
|
#
|
17573
|
-
# * [AbortMultipartUpload][
|
18545
|
+
# * [AbortMultipartUpload][13]
|
17574
18546
|
#
|
17575
|
-
# * [ListParts][
|
18547
|
+
# * [ListParts][14]
|
17576
18548
|
#
|
17577
|
-
# * [ListMultipartUploads][
|
18549
|
+
# * [ListMultipartUploads][15]
|
17578
18550
|
#
|
17579
18551
|
#
|
17580
18552
|
#
|
@@ -17583,14 +18555,16 @@ module Aws::S3
|
|
17583
18555
|
# [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
|
17584
18556
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
|
17585
18557
|
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
17586
|
-
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17587
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17588
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17589
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17590
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
17591
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/
|
17592
|
-
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
17593
|
-
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
18558
|
+
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
|
18559
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
|
18560
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
|
18561
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
|
18562
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
|
18563
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
|
18564
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
|
18565
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
|
18566
|
+
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
|
18567
|
+
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
|
17594
18568
|
#
|
17595
18569
|
# @option params [String, StringIO, File] :body
|
17596
18570
|
# Object data.
|
@@ -17923,9 +18897,21 @@ module Aws::S3
|
|
17923
18897
|
# have the <b> <code>s3:PutObject</code> </b> permission to write
|
17924
18898
|
# the object copy to the destination bucket.
|
17925
18899
|
#
|
17926
|
-
#
|
17927
|
-
#
|
17928
|
-
#
|
18900
|
+
# * To perform a multipart upload with encryption using an Key
|
18901
|
+
# Management Service key, the requester must have permission to
|
18902
|
+
# the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key.
|
18903
|
+
# The requester must also have permissions for the
|
18904
|
+
# `kms:GenerateDataKey` action for the `CreateMultipartUpload`
|
18905
|
+
# API. Then, the requester needs permissions for the `kms:Decrypt`
|
18906
|
+
# action on the `UploadPart` and `UploadPartCopy` APIs. These
|
18907
|
+
# permissions are required because Amazon S3 must decrypt and read
|
18908
|
+
# data from the encrypted file parts before it completes the
|
18909
|
+
# multipart upload. For more information about KMS permissions,
|
18910
|
+
# see [Protecting data using server-side encryption with KMS][7]
|
18911
|
+
# in the *Amazon S3 User Guide*. For information about the
|
18912
|
+
# permissions required to use the multipart upload API, see
|
18913
|
+
# [Multipart upload and permissions][8] and [Multipart upload API
|
18914
|
+
# and permissions][9] in the *Amazon S3 User Guide*.
|
17929
18915
|
#
|
17930
18916
|
# * **Directory bucket permissions** - You must have permissions in a
|
17931
18917
|
# bucket policy or an IAM identity-based policy based on the source
|
@@ -17934,9 +18920,9 @@ module Aws::S3
|
|
17934
18920
|
# * If the source object that you want to copy is in a directory
|
17935
18921
|
# bucket, you must have the <b>
|
17936
18922
|
# <code>s3express:CreateSession</code> </b> permission in the
|
17937
|
-
# `Action` element of a policy to read the object
|
17938
|
-
#
|
17939
|
-
#
|
18923
|
+
# `Action` element of a policy to read the object. By default, the
|
18924
|
+
# session is in the `ReadWrite` mode. If you want to restrict the
|
18925
|
+
# access, you can explicitly set the `s3express:SessionMode`
|
17940
18926
|
# condition key to `ReadOnly` on the copy source bucket.
|
17941
18927
|
#
|
17942
18928
|
# * If the copy destination is a directory bucket, you must have the
|
@@ -17945,20 +18931,41 @@ module Aws::S3
|
|
17945
18931
|
# destination. The `s3express:SessionMode` condition key cannot be
|
17946
18932
|
# set to `ReadOnly` on the copy destination.
|
17947
18933
|
#
|
18934
|
+
# If the object is encrypted with SSE-KMS, you must also have the
|
18935
|
+
# `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
|
18936
|
+
# identity-based policies and KMS key policies for the KMS key.
|
18937
|
+
#
|
17948
18938
|
# For example policies, see [Example bucket policies for S3 Express
|
17949
|
-
# One Zone][
|
18939
|
+
# One Zone][10] and [Amazon Web Services Identity and Access
|
17950
18940
|
# Management (IAM) identity-based policies for S3 Express One
|
17951
|
-
# Zone][
|
18941
|
+
# Zone][11] in the *Amazon S3 User Guide*.
|
17952
18942
|
#
|
17953
18943
|
# Encryption
|
17954
18944
|
# : * <b>General purpose buckets </b> - For information about using
|
17955
18945
|
# server-side encryption with customer-provided encryption keys with
|
17956
|
-
# the `UploadPartCopy` operation, see [CopyObject][
|
18946
|
+
# the `UploadPartCopy` operation, see [CopyObject][12] and
|
17957
18947
|
# [UploadPart][2].
|
17958
18948
|
#
|
17959
|
-
# * <b>Directory buckets </b> - For directory buckets, only
|
17960
|
-
# server-side encryption
|
17961
|
-
# (`AES256`)
|
18949
|
+
# * <b>Directory buckets </b> - For directory buckets, there are only
|
18950
|
+
# two supported options for server-side encryption: server-side
|
18951
|
+
# encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
|
18952
|
+
# server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). For
|
18953
|
+
# more information, see [Protecting data with server-side
|
18954
|
+
# encryption][13] in the *Amazon S3 User Guide*.
|
18955
|
+
#
|
18956
|
+
# <note markdown="1"> For directory buckets, when you perform a `CreateMultipartUpload`
|
18957
|
+
# operation and an `UploadPartCopy` operation, the request headers
|
18958
|
+
# you provide in the `CreateMultipartUpload` request must match the
|
18959
|
+
# default encryption configuration of the destination bucket.
|
18960
|
+
#
|
18961
|
+
# </note>
|
18962
|
+
#
|
18963
|
+
# S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted
|
18964
|
+
# objects from general purpose buckets to directory buckets, from
|
18965
|
+
# directory buckets to general purpose buckets, or between directory
|
18966
|
+
# buckets, through [UploadPartCopy][14]. In this case, Amazon S3
|
18967
|
+
# makes a call to KMS every time a copy request is made for a
|
18968
|
+
# KMS-encrypted object.
|
17962
18969
|
#
|
17963
18970
|
# Special errors
|
17964
18971
|
# : * Error Code: `NoSuchUpload`
|
@@ -17983,17 +18990,17 @@ module Aws::S3
|
|
17983
18990
|
#
|
17984
18991
|
# The following operations are related to `UploadPartCopy`:
|
17985
18992
|
#
|
17986
|
-
# * [CreateMultipartUpload][
|
18993
|
+
# * [CreateMultipartUpload][15]
|
17987
18994
|
#
|
17988
18995
|
# * [UploadPart][2]
|
17989
18996
|
#
|
17990
|
-
# * [CompleteMultipartUpload][
|
18997
|
+
# * [CompleteMultipartUpload][16]
|
17991
18998
|
#
|
17992
|
-
# * [AbortMultipartUpload][
|
18999
|
+
# * [AbortMultipartUpload][17]
|
17993
19000
|
#
|
17994
|
-
# * [ListParts][
|
19001
|
+
# * [ListParts][18]
|
17995
19002
|
#
|
17996
|
-
# * [ListMultipartUploads][
|
19003
|
+
# * [ListMultipartUploads][19]
|
17997
19004
|
#
|
17998
19005
|
#
|
17999
19006
|
#
|
@@ -18003,15 +19010,19 @@ module Aws::S3
|
|
18003
19010
|
# [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
|
18004
19011
|
# [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
|
18005
19012
|
# [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
|
18006
|
-
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/
|
18007
|
-
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/
|
18008
|
-
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/
|
18009
|
-
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/
|
18010
|
-
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/
|
18011
|
-
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
18012
|
-
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/
|
18013
|
-
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
18014
|
-
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/
|
19013
|
+
# [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
|
19014
|
+
# [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
|
19015
|
+
# [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
|
19016
|
+
# [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
|
19017
|
+
# [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
|
19018
|
+
# [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
|
19019
|
+
# [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
|
19020
|
+
# [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
|
19021
|
+
# [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
|
19022
|
+
# [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
|
19023
|
+
# [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
|
19024
|
+
# [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
|
19025
|
+
# [19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
|
18015
19026
|
#
|
18016
19027
|
# @option params [required, String] :bucket
|
18017
19028
|
# The bucket name.
|
@@ -18297,45 +19308,45 @@ module Aws::S3
|
|
18297
19308
|
# * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
|
18298
19309
|
#
|
18299
19310
|
#
|
18300
|
-
# @example Example: To upload a part by copying
|
19311
|
+
# @example Example: To upload a part by copying byte range from an existing object as data source
|
18301
19312
|
#
|
18302
|
-
# # The following example uploads a part of a multipart upload by copying
|
19313
|
+
# # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
|
19314
|
+
# # data source.
|
18303
19315
|
#
|
18304
19316
|
# resp = client.upload_part_copy({
|
18305
19317
|
# bucket: "examplebucket",
|
18306
19318
|
# copy_source: "/bucketname/sourceobjectkey",
|
19319
|
+
# copy_source_range: "bytes=1-100000",
|
18307
19320
|
# key: "examplelargeobject",
|
18308
|
-
# part_number:
|
19321
|
+
# part_number: 2,
|
18309
19322
|
# upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
|
18310
19323
|
# })
|
18311
19324
|
#
|
18312
19325
|
# resp.to_h outputs the following:
|
18313
19326
|
# {
|
18314
19327
|
# copy_part_result: {
|
18315
|
-
# etag: "\"
|
18316
|
-
# last_modified: Time.parse("2016-12-29T21:
|
19328
|
+
# etag: "\"65d16d19e65a7508a51f043180edcc36\"",
|
19329
|
+
# last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
|
18317
19330
|
# },
|
18318
19331
|
# }
|
18319
19332
|
#
|
18320
|
-
# @example Example: To upload a part by copying
|
19333
|
+
# @example Example: To upload a part by copying data from an existing object as data source
|
18321
19334
|
#
|
18322
|
-
# # The following example uploads a part of a multipart upload by copying
|
18323
|
-
# # data source.
|
19335
|
+
# # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
|
18324
19336
|
#
|
18325
19337
|
# resp = client.upload_part_copy({
|
18326
19338
|
# bucket: "examplebucket",
|
18327
19339
|
# copy_source: "/bucketname/sourceobjectkey",
|
18328
|
-
# copy_source_range: "bytes=1-100000",
|
18329
19340
|
# key: "examplelargeobject",
|
18330
|
-
# part_number:
|
19341
|
+
# part_number: 1,
|
18331
19342
|
# upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
|
18332
19343
|
# })
|
18333
19344
|
#
|
18334
19345
|
# resp.to_h outputs the following:
|
18335
19346
|
# {
|
18336
19347
|
# copy_part_result: {
|
18337
|
-
# etag: "\"
|
18338
|
-
# last_modified: Time.parse("2016-12-29T21:
|
19348
|
+
# etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
|
19349
|
+
# last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
|
18339
19350
|
# },
|
18340
19351
|
# }
|
18341
19352
|
#
|
@@ -18785,14 +19796,19 @@ module Aws::S3
|
|
18785
19796
|
# @api private
|
18786
19797
|
def build_request(operation_name, params = {})
|
18787
19798
|
handlers = @handlers.for(operation_name)
|
19799
|
+
tracer = config.telemetry_provider.tracer_provider.tracer(
|
19800
|
+
Aws::Telemetry.module_to_tracer_name('Aws::S3')
|
19801
|
+
)
|
18788
19802
|
context = Seahorse::Client::RequestContext.new(
|
18789
19803
|
operation_name: operation_name,
|
18790
19804
|
operation: config.api.operation(operation_name),
|
18791
19805
|
client: self,
|
18792
19806
|
params: params,
|
18793
|
-
config: config
|
19807
|
+
config: config,
|
19808
|
+
tracer: tracer
|
19809
|
+
)
|
18794
19810
|
context[:gem_name] = 'aws-sdk-s3'
|
18795
|
-
context[:gem_version] = '1.
|
19811
|
+
context[:gem_version] = '1.163.0'
|
18796
19812
|
Seahorse::Client::Request.new(handlers, context)
|
18797
19813
|
end
|
18798
19814
|
|