aws-sdk-s3 1.147.0 → 1.163.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +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
|
|