aws-sdk-s3 1.64.0 → 1.68.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: