aws-sdk-s3 1.64.0 → 1.68.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,10 +13,7 @@ module Aws
13
13
  class Handler < Seahorse::Client::Handler
14
14
 
15
15
  def call(context)
16
- if
17
- context.http_request.body &&
18
- context.http_request.body.size > 0
19
- then
16
+ if context.http_request.body && context.http_request.body.size > 0
20
17
  context.http_request.headers['expect'] = '100-continue'
21
18
  end
22
19
  @handler.call(context)
@@ -27,7 +27,7 @@ module Aws
27
27
  error_code = xml.match(/<Code>(.+?)<\/Code>/)[1]
28
28
  error_message = xml.match(/<Message>(.+?)<\/Message>/)[1]
29
29
  S3::Errors.error_class(error_code).new(context, error_message)
30
- elsif !xml.match(/<[\w_]/) # Must have the start of an XML Tag
30
+ elsif !xml.match(/<\w/) # Must have the start of an XML Tag
31
31
  # Other incomplete xml bodies will result in XML ParsingError
32
32
  Seahorse::Client::NetworkingError.new(
33
33
  S3::Errors
@@ -3,20 +3,15 @@ require 'openssl'
3
3
  module Aws
4
4
  module S3
5
5
  module Plugins
6
+ # @api private
7
+ # This plugin is effectively deprecated in favor of modeled
8
+ # httpChecksumRequired traits.
6
9
  class Md5s < Seahorse::Client::Plugin
7
-
8
- # Amazon S3 requires these operations to have an MD5 checksum
9
- REQUIRED_OPERATIONS = [
10
- :delete_objects,
11
- :put_bucket_cors,
12
- :put_bucket_lifecycle,
13
- :put_bucket_lifecycle_configuration,
14
- :put_bucket_policy,
15
- :put_bucket_replication,
16
- :put_bucket_tagging,
17
- :put_object_legal_hold,
18
- :put_object_lock_configuration,
19
- :put_object_retention
10
+ # These operations allow Content MD5 but are not required by
11
+ # httpChecksumRequired. This list should not grow.
12
+ OPTIONAL_OPERATIONS = [
13
+ :put_object,
14
+ :upload_part
20
15
  ]
21
16
 
22
17
  # @api private
@@ -63,20 +58,22 @@ module Aws
63
58
  default: true,
64
59
  doc_type: 'Boolean',
65
60
  docstring: <<-DOCS)
66
- When `true` a MD5 checksum will be computed for every request that
67
- sends a body. When `false`, MD5 checksums will only be computed
68
- for operations that require them. Checksum errors returned by Amazon
69
- S3 are automatically retried up to `:retry_limit` times.
61
+ When `true` a MD5 checksum will be computed and sent in the Content Md5
62
+ header for :put_object and :upload_part. When `false`, MD5 checksums
63
+ will not be computed for these operations. Checksums are still computed
64
+ for operations requiring them. Checksum errors returned by Amazon S3 are
65
+ automatically retried up to `:retry_limit` times.
70
66
  DOCS
71
67
 
72
68
  def add_handlers(handlers, config)
73
- # priority set low to ensure md5 is computed AFTER the request is
74
- # built but before it is signed
75
- handlers.add(Handler, {
76
- priority: 10,
77
- step: :build,
78
- operations: config.compute_checksums ? nil : REQUIRED_OPERATIONS,
79
- })
69
+ if config.compute_checksums
70
+ # priority set low to ensure md5 is computed AFTER the request is
71
+ # built but before it is signed
72
+ handlers.add(
73
+ Handler,
74
+ priority: 10, step: :build, operations: OPTIONAL_OPERATIONS
75
+ )
76
+ end
80
77
  end
81
78
 
82
79
  end
@@ -128,9 +128,6 @@ module Aws
128
128
  private
129
129
 
130
130
  def _presigned_request(method, params, hoist = true)
131
- if params[:key].nil? or params[:key] == ''
132
- raise ArgumentError, ":key must not be blank"
133
- end
134
131
  virtual_host = params.delete(:virtual_host)
135
132
  time = params.delete(:time)
136
133
  unsigned_headers = unsigned_headers(params)
@@ -72,7 +72,7 @@ module Aws::S3
72
72
  # bucket.
73
73
  # @return [Bucket]
74
74
  def create_bucket(options = {})
75
- resp = @client.create_bucket(options)
75
+ @client.create_bucket(options)
76
76
  Bucket.new(
77
77
  name: options[:bucket],
78
78
  client: @client
@@ -389,8 +389,14 @@ module Aws::S3
389
389
  # @return [String]
390
390
  #
391
391
  # @!attribute [rw] bucket_account_id
392
- # The account ID that owns the destination bucket. If no account ID is
393
- # provided, the owner will not be validated prior to exporting data.
392
+ # The account ID that owns the destination S3 bucket. If no account ID
393
+ # is provided, the owner is not validated before exporting data.
394
+ #
395
+ # <note markdown="1"> Although this value is optional, we strongly recommend that you set
396
+ # it to help prevent problems if the destination bucket ownership
397
+ # changes.
398
+ #
399
+ # </note>
394
400
  # @return [String]
395
401
  #
396
402
  # @!attribute [rw] bucket
@@ -2616,9 +2622,9 @@ module Aws::S3
2616
2622
  # @return [String]
2617
2623
  #
2618
2624
  # @!attribute [rw] storage_class
2619
- # The storage class to use when replicating objects, such as standard
2620
- # or reduced redundancy. By default, Amazon S3 uses the storage class
2621
- # of the source object to create the object replica.
2625
+ # The storage class to use when replicating objects, such as S3
2626
+ # Standard or reduced redundancy. By default, Amazon S3 uses the
2627
+ # storage class of the source object to create the object replica.
2622
2628
  #
2623
2629
  # For valid values, see the `StorageClass` element of the [PUT Bucket
2624
2630
  # replication][1] action in the *Amazon Simple Storage Service API
@@ -3916,7 +3922,8 @@ module Aws::S3
3916
3922
  # @!attribute [rw] location_constraint
3917
3923
  # Specifies the Region where the bucket resides. For a list of all the
3918
3924
  # Amazon S3 supported location constraints by Region, see [Regions and
3919
- # Endpoints][1].
3925
+ # Endpoints][1]. Buckets in Region `us-east-1` have a
3926
+ # LocationConstraint of `null`.
3920
3927
  #
3921
3928
  #
3922
3929
  #
@@ -4028,7 +4035,7 @@ module Aws::S3
4028
4035
  # }
4029
4036
  #
4030
4037
  # @!attribute [rw] bucket
4031
- # Name of the bucket for which to get the notification configuration
4038
+ # Name of the bucket for which to get the notification configuration.
4032
4039
  # @return [String]
4033
4040
  #
4034
4041
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfigurationRequest AWS API Documentation
@@ -4229,11 +4236,13 @@ module Aws::S3
4229
4236
  # @return [Types::RedirectAllRequestsTo]
4230
4237
  #
4231
4238
  # @!attribute [rw] index_document
4232
- # The name of the index document for the website.
4239
+ # The name of the index document for the website (for example
4240
+ # `index.html`).
4233
4241
  # @return [Types::IndexDocument]
4234
4242
  #
4235
4243
  # @!attribute [rw] error_document
4236
- # The name of the error document for the website.
4244
+ # The object key name of the website error document to use for 4XX
4245
+ # class errors.
4237
4246
  # @return [Types::ErrorDocument]
4238
4247
  #
4239
4248
  # @!attribute [rw] routing_rules
@@ -4570,7 +4579,7 @@ module Aws::S3
4570
4579
  #
4571
4580
  # @!attribute [rw] storage_class
4572
4581
  # Provides storage class information of the object. Amazon S3 returns
4573
- # this header for all objects except for Standard storage class
4582
+ # this header for all objects except for S3 Standard storage class
4574
4583
  # objects.
4575
4584
  # @return [String]
4576
4585
  #
@@ -4713,7 +4722,16 @@ module Aws::S3
4713
4722
  # @!attribute [rw] range
4714
4723
  # Downloads the specified range bytes of an object. For more
4715
4724
  # information about the HTTP Range header, see
4716
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
4725
+ # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
4726
+ #
4727
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
4728
+ # `GET` request.
4729
+ #
4730
+ # </note>
4731
+ #
4732
+ #
4733
+ #
4734
+ # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
4717
4735
  # @return [String]
4718
4736
  #
4719
4737
  # @!attribute [rw] response_cache_control
@@ -5027,7 +5045,7 @@ module Aws::S3
5027
5045
  include Aws::Structure
5028
5046
  end
5029
5047
 
5030
- # Container for Glacier job parameters.
5048
+ # Container for S3 Glacier job parameters.
5031
5049
  #
5032
5050
  # @note When making an API call, you may pass GlacierJobParameters
5033
5051
  # data as a hash:
@@ -5037,7 +5055,7 @@ module Aws::S3
5037
5055
  # }
5038
5056
  #
5039
5057
  # @!attribute [rw] tier
5040
- # Glacier retrieval tier at which the restore will be processed.
5058
+ # S3 Glacier retrieval tier at which the restore will be processed.
5041
5059
  # @return [String]
5042
5060
  #
5043
5061
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GlacierJobParameters AWS API Documentation
@@ -5098,6 +5116,34 @@ module Aws::S3
5098
5116
  #
5099
5117
  # @!attribute [rw] email_address
5100
5118
  # Email address of the grantee.
5119
+ #
5120
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in the
5121
+ # following AWS Regions:
5122
+ #
5123
+ # * US East (N. Virginia)
5124
+ #
5125
+ # * US West (N. California)
5126
+ #
5127
+ # * US West (Oregon)
5128
+ #
5129
+ # * Asia Pacific (Singapore)
5130
+ #
5131
+ # * Asia Pacific (Sydney)
5132
+ #
5133
+ # * Asia Pacific (Tokyo)
5134
+ #
5135
+ # * Europe (Ireland)
5136
+ #
5137
+ # * South America (São Paulo)
5138
+ #
5139
+ # For a list of all the Amazon S3 supported Regions and endpoints, see
5140
+ # [Regions and Endpoints][1] in the AWS General Reference.
5141
+ #
5142
+ # </note>
5143
+ #
5144
+ #
5145
+ #
5146
+ # [1]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
5101
5147
  # @return [String]
5102
5148
  #
5103
5149
  # @!attribute [rw] id
@@ -5275,7 +5321,7 @@ module Aws::S3
5275
5321
  #
5276
5322
  # @!attribute [rw] storage_class
5277
5323
  # Provides storage class information of the object. Amazon S3 returns
5278
- # this header for all objects except for Standard storage class
5324
+ # this header for all objects except for S3 Standard storage class
5279
5325
  # objects.
5280
5326
  #
5281
5327
  # For more information, see [Storage Classes][1].
@@ -5445,6 +5491,11 @@ module Aws::S3
5445
5491
  # Downloads the specified range bytes of an object. For more
5446
5492
  # information about the HTTP Range header, see
5447
5493
  # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
5494
+ #
5495
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
5496
+ # `GET` request.
5497
+ #
5498
+ # </note>
5448
5499
  # @return [String]
5449
5500
  #
5450
5501
  # @!attribute [rw] version_id
@@ -5795,7 +5846,14 @@ module Aws::S3
5795
5846
  # }
5796
5847
  #
5797
5848
  # @!attribute [rw] account_id
5798
- # The ID of the account that owns the destination bucket.
5849
+ # The account ID that owns the destination S3 bucket. If no account ID
5850
+ # is provided, the owner is not validated before exporting data.
5851
+ #
5852
+ # <note markdown="1"> Although this value is optional, we strongly recommend that you set
5853
+ # it to help prevent problems if the destination bucket ownership
5854
+ # changes.
5855
+ #
5856
+ # </note>
5799
5857
  # @return [String]
5800
5858
  #
5801
5859
  # @!attribute [rw] bucket
@@ -5877,7 +5935,8 @@ module Aws::S3
5877
5935
  # }
5878
5936
  #
5879
5937
  # @!attribute [rw] record_delimiter
5880
- # The value used to separate individual records in the output.
5938
+ # The value used to separate individual records in the output. If no
5939
+ # value is specified, Amazon S3 uses a newline character ('\\n').
5881
5940
  # @return [String]
5882
5941
  #
5883
5942
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JSONOutput AWS API Documentation
@@ -6777,10 +6836,11 @@ module Aws::S3
6777
6836
  # @return [String]
6778
6837
  #
6779
6838
  # @!attribute [rw] max_keys
6780
- # Sets the maximum number of keys returned in the response. The
6781
- # response might contain fewer keys but will never contain more. If
6782
- # additional keys satisfy the search criteria, but were not returned
6783
- # because max-keys was exceeded, the response contains
6839
+ # Sets the maximum number of keys returned in the response. By default
6840
+ # the API returns up to 1,000 key names. The response might contain
6841
+ # fewer keys but will never contain more. If additional keys satisfy
6842
+ # the search criteria, but were not returned because max-keys was
6843
+ # exceeded, the response contains
6784
6844
  # &lt;isTruncated&gt;true&lt;/isTruncated&gt;. To return the
6785
6845
  # additional keys, see key-marker and version-id-marker.
6786
6846
  # @return [Integer]
@@ -6931,8 +6991,9 @@ module Aws::S3
6931
6991
  # @return [String]
6932
6992
  #
6933
6993
  # @!attribute [rw] max_keys
6934
- # Sets the maximum number of keys returned in the response. The
6935
- # response might contain fewer keys but will never contain more.
6994
+ # Sets the maximum number of keys returned in the response. By default
6995
+ # the API returns up to 1,000 key names. The response might contain
6996
+ # fewer keys but will never contain more.
6936
6997
  # @return [Integer]
6937
6998
  #
6938
6999
  # @!attribute [rw] prefix
@@ -6998,8 +7059,9 @@ module Aws::S3
6998
7059
  # @return [String]
6999
7060
  #
7000
7061
  # @!attribute [rw] max_keys
7001
- # Sets the maximum number of keys returned in the response. The
7002
- # response might contain fewer keys but will never contain more.
7062
+ # Sets the maximum number of keys returned in the response. By default
7063
+ # the API returns up to 1,000 key names. The response might contain
7064
+ # fewer keys but will never contain more.
7003
7065
  # @return [Integer]
7004
7066
  #
7005
7067
  # @!attribute [rw] common_prefixes
@@ -7117,8 +7179,9 @@ module Aws::S3
7117
7179
  # @return [String]
7118
7180
  #
7119
7181
  # @!attribute [rw] max_keys
7120
- # Sets the maximum number of keys returned in the response. The
7121
- # response might contain fewer keys but will never contain more.
7182
+ # Sets the maximum number of keys returned in the response. By default
7183
+ # the API returns up to 1,000 key names. The response might contain
7184
+ # fewer keys but will never contain more.
7122
7185
  # @return [Integer]
7123
7186
  #
7124
7187
  # @!attribute [rw] prefix
@@ -8618,7 +8681,7 @@ module Aws::S3
8618
8681
  #
8619
8682
  #
8620
8683
  #
8621
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//cors.html
8684
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
8622
8685
  # @return [Types::CORSConfiguration]
8623
8686
  #
8624
8687
  # @!attribute [rw] content_md5
@@ -9990,8 +10053,8 @@ module Aws::S3
9990
10053
  # @return [String]
9991
10054
  #
9992
10055
  # @!attribute [rw] storage_class
9993
- # If you don't specify, Standard is the default storage class. Amazon
9994
- # S3 supports other storage classes.
10056
+ # If you don't specify, S3 Standard is the default storage class.
10057
+ # Amazon S3 supports other storage classes.
9995
10058
  # @return [String]
9996
10059
  #
9997
10060
  # @!attribute [rw] website_redirect_location
@@ -11245,8 +11308,8 @@ module Aws::S3
11245
11308
  # @return [Integer]
11246
11309
  #
11247
11310
  # @!attribute [rw] glacier_job_parameters
11248
- # Glacier related parameters pertaining to this job. Do not use with
11249
- # restores that specify `OutputLocation`.
11311
+ # S3 Glacier related parameters pertaining to this job. Do not use
11312
+ # with restores that specify `OutputLocation`.
11250
11313
  # @return [Types::GlacierJobParameters]
11251
11314
  #
11252
11315
  # @!attribute [rw] type
@@ -11254,7 +11317,7 @@ module Aws::S3
11254
11317
  # @return [String]
11255
11318
  #
11256
11319
  # @!attribute [rw] tier
11257
- # Glacier retrieval tier at which the restore will be processed.
11320
+ # S3 Glacier retrieval tier at which the restore will be processed.
11258
11321
  # @return [String]
11259
11322
  #
11260
11323
  # @!attribute [rw] description
@@ -11324,12 +11387,14 @@ module Aws::S3
11324
11387
  end
11325
11388
 
11326
11389
  # Specifies lifecycle rules for an Amazon S3 bucket. For more
11327
- # information, see [PUT Bucket lifecycle][1] in the *Amazon Simple
11328
- # Storage Service API Reference*.
11390
+ # information, see [Put Bucket Lifecycle Configuration][1] in the
11391
+ # *Amazon Simple Storage Service API Reference*. For examples, see [Put
11392
+ # Bucket Lifecycle Configuration Examples][2]
11329
11393
  #
11330
11394
  #
11331
11395
  #
11332
11396
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTlifecycle.html
11397
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html#API_PutBucketLifecycleConfiguration_Examples
11333
11398
  #
11334
11399
  # @note When making an API call, you may pass Rule
11335
11400
  # data as a hash:
@@ -11381,6 +11446,13 @@ module Aws::S3
11381
11446
  #
11382
11447
  # @!attribute [rw] transition
11383
11448
  # Specifies when an object transitions to a specified storage class.
11449
+ # For more information about Amazon S3 lifecycle configuration rules,
11450
+ # see [Transitioning Objects Using Amazon S3 Lifecycle][1] in the
11451
+ # *Amazon Simple Storage Service Developer Guide*.
11452
+ #
11453
+ #
11454
+ #
11455
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
11384
11456
  # @return [Types::Transition]
11385
11457
  #
11386
11458
  # @!attribute [rw] noncurrent_version_transition
@@ -11872,8 +11944,30 @@ module Aws::S3
11872
11944
  # @return [String]
11873
11945
  #
11874
11946
  # @!attribute [rw] kms_master_key_id
11875
- # KMS master key ID to use for the default encryption. This parameter
11876
- # is allowed if and only if `SSEAlgorithm` is set to `aws:kms`.
11947
+ # AWS Key Management Service (KMS) customer master key ID to use for
11948
+ # the default encryption. This parameter is allowed if and only if
11949
+ # `SSEAlgorithm` is set to `aws:kms`.
11950
+ #
11951
+ # You can specify the key ID or the Amazon Resource Name (ARN) of the
11952
+ # CMK. However, if you are using encryption with cross-account
11953
+ # operations, you must use a fully qualified CMK ARN. For more
11954
+ # information, see [Using encryption for cross-account operations][1].
11955
+ #
11956
+ # **For example:**
11957
+ #
11958
+ # * Key ID: `1234abcd-12ab-34cd-56ef-1234567890ab`
11959
+ #
11960
+ # * Key ARN:
11961
+ # `arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`
11962
+ #
11963
+ # Amazon S3 only supports symmetric CMKs and not asymmetric CMKs. For
11964
+ # more information, see [Using Symmetric and Asymmetric Keys][2] in
11965
+ # the *AWS Key Management Service Developer Guide*.
11966
+ #
11967
+ #
11968
+ #
11969
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy
11970
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
11877
11971
  # @return [String]
11878
11972
  #
11879
11973
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionByDefault AWS API Documentation
@@ -12287,7 +12381,14 @@ module Aws::S3
12287
12381
  include Aws::Structure
12288
12382
  end
12289
12383
 
12290
- # Specifies when an object transitions to a specified storage class.
12384
+ # Specifies when an object transitions to a specified storage class. For
12385
+ # more information about Amazon S3 lifecycle configuration rules, see
12386
+ # [Transitioning Objects Using Amazon S3 Lifecycle][1] in the *Amazon
12387
+ # Simple Storage Service Developer Guide*.
12388
+ #
12389
+ #
12390
+ #
12391
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html
12291
12392
  #
12292
12393
  # @note When making an API call, you may pass Transition
12293
12394
  # data as a hash: