aws-sdk-s3 1.147.0 → 1.156.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -2
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +241 -0
  6. data/lib/aws-sdk-s3/bucket.rb +12 -12
  7. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  8. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +4 -4
  11. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +4 -4
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  18. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  19. data/lib/aws-sdk-s3/client.rb +214 -143
  20. data/lib/aws-sdk-s3/client_api.rb +11 -2
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  22. data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
  23. data/lib/aws-sdk-s3/customizations/object.rb +5 -5
  24. data/lib/aws-sdk-s3/customizations.rb +4 -1
  25. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  26. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  27. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  28. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  29. data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
  30. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  31. data/lib/aws-sdk-s3/endpoints.rb +100 -1
  32. data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
  33. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  34. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  35. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  36. data/lib/aws-sdk-s3/multipart_upload.rb +4 -4
  37. data/lib/aws-sdk-s3/multipart_upload_part.rb +3 -3
  38. data/lib/aws-sdk-s3/object.rb +30 -12
  39. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  40. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  41. data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
  42. data/lib/aws-sdk-s3/object_summary.rb +10 -10
  43. data/lib/aws-sdk-s3/object_version.rb +23 -5
  44. data/lib/aws-sdk-s3/plugins/access_grants.rb +114 -0
  45. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +8 -2
  46. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  47. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  48. data/lib/aws-sdk-s3/presigner.rb +1 -0
  49. data/lib/aws-sdk-s3/resource.rb +2 -2
  50. data/lib/aws-sdk-s3/types.rb +48 -17
  51. data/lib/aws-sdk-s3.rb +1 -1
  52. data/sig/client.rbs +21 -0
  53. data/sig/customizations/bucket.rbs +19 -0
  54. data/sig/customizations/object.rbs +38 -0
  55. data/sig/customizations/object_summary.rbs +35 -0
  56. data/sig/object.rbs +6 -0
  57. data/sig/object_version.rbs +6 -0
  58. data/sig/resource.rbs +3 -0
  59. data/sig/types.rbs +6 -0
  60. data/sig/waiters.rbs +12 -0
  61. metadata +12 -7
  62. data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
@@ -15,22 +15,67 @@ module Aws
15
15
 
16
16
  def call(context)
17
17
  @handler.call(context).on(200) do |response|
18
- if error = check_for_error(context)
19
- context.http_response.status_code = 500
20
- response.data = nil
21
- response.error = error
18
+ return response if streaming_output?(context.operation.output)
19
+
20
+ error = check_for_error(context)
21
+ return response unless error
22
+
23
+ context.http_response.status_code = 500
24
+ response.data = nil
25
+ response.error = error
26
+ end
27
+ end
28
+
29
+ private
30
+
31
+ # Streaming outputs are not subject to 200 errors.
32
+ def streaming_output?(output)
33
+ if (payload = output[:payload_member])
34
+ # checking ref and shape
35
+ payload['streaming'] || payload.shape['streaming'] ||
36
+ payload.eventstream
37
+ else
38
+ false
39
+ end
40
+ end
41
+
42
+ # Checks if the output shape is a structure shape and has members that
43
+ # are in the body for the case of a payload and a normal structure. A
44
+ # non-structure shape will not have members in the body. In the case
45
+ # of a string or blob, the body contents would have been checked first
46
+ # before this method is called in incomplete_xml_body?.
47
+ def members_in_body?(output)
48
+ shape =
49
+ if output[:payload_member]
50
+ output[:payload_member].shape
51
+ else
52
+ output.shape
22
53
  end
54
+
55
+ if structure_shape?(shape)
56
+ shape.members.any? { |_, k| k.location.nil? }
57
+ else
58
+ false
23
59
  end
24
60
  end
25
61
 
62
+ def structure_shape?(shape)
63
+ shape.is_a?(Seahorse::Model::Shapes::StructureShape)
64
+ end
65
+
66
+ # Must have a member in the body and have the start of an XML Tag.
67
+ # Other incomplete xml bodies will result in an XML ParsingError.
68
+ def incomplete_xml_body?(xml, output)
69
+ members_in_body?(output) && !xml.match(/<\w/)
70
+ end
71
+
26
72
  def check_for_error(context)
27
73
  xml = context.http_response.body_contents
28
- if xml.match(/<Error>/)
74
+ if xml.match(/\?>\s*<Error>/)
29
75
  error_code = xml.match(/<Code>(.+?)<\/Code>/)[1]
30
76
  error_message = xml.match(/<Message>(.+?)<\/Message>/)[1]
31
77
  S3::Errors.error_class(error_code).new(context, error_message)
32
- elsif !xml.match(/<\w/) # Must have the start of an XML Tag
33
- # Other incomplete xml bodies will result in XML ParsingError
78
+ elsif incomplete_xml_body?(xml, context.operation.output)
34
79
  Seahorse::Client::NetworkingError.new(
35
80
  S3::Errors
36
81
  .error_class('InternalError')
@@ -40,15 +85,7 @@ module Aws
40
85
  end
41
86
  end
42
87
 
43
- handler(
44
- Handler,
45
- step: :sign,
46
- operations: [
47
- :complete_multipart_upload,
48
- :copy_object,
49
- :upload_part_copy,
50
- ]
51
- )
88
+ handler(Handler, step: :sign)
52
89
  end
53
90
  end
54
91
  end
@@ -4,6 +4,11 @@ require 'aws-sigv4'
4
4
 
5
5
  module Aws
6
6
  module S3
7
+ # @api private
8
+ def self.bucket_region_cache
9
+ @bucket_region_cache ||= BucketRegionCache.new
10
+ end
11
+
7
12
  module Plugins
8
13
  # This plugin used to have a V4 signer but it was removed in favor of
9
14
  # generic Sign plugin that uses endpoint auth scheme.
@@ -51,7 +56,7 @@ module Aws
51
56
  private
52
57
 
53
58
  def check_for_cached_region(context, bucket)
54
- cached_region = S3::BUCKET_REGIONS[bucket]
59
+ cached_region = Aws::S3.bucket_region_cache[bucket]
55
60
  if cached_region &&
56
61
  cached_region != context.config.region &&
57
62
  !S3Signer.custom_endpoint?(context)
@@ -97,7 +102,7 @@ module Aws
97
102
  end
98
103
 
99
104
  def update_bucket_cache(context, actual_region)
100
- S3::BUCKET_REGIONS[context.params[:bucket]] = actual_region
105
+ Aws::S3.bucket_region_cache[context.params[:bucket]] = actual_region
101
106
  end
102
107
 
103
108
  def fips_region?(resp)
@@ -200,6 +200,7 @@ module Aws
200
200
  req.handlers.remove(Aws::Plugins::Sign::Handler)
201
201
  req.handlers.remove(Seahorse::Client::Plugins::ContentLength::Handler)
202
202
  req.handlers.remove(Aws::Rest::ContentTypeHandler)
203
+ req.handlers.remove(Aws::Plugins::InvocationId::Handler)
203
204
 
204
205
  req.handle(step: :send) do |context|
205
206
  # if an endpoint was not provided, force secure or insecure
@@ -166,7 +166,7 @@ module Aws::S3
166
166
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
167
167
  # @return [Bucket]
168
168
  def create_bucket(options = {})
169
- Aws::Plugins::UserAgent.feature('resource') do
169
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
170
170
  @client.create_bucket(options)
171
171
  end
172
172
  Bucket.new(
@@ -194,7 +194,7 @@ module Aws::S3
194
194
  def buckets(options = {})
195
195
  batches = Enumerator.new do |y|
196
196
  batch = []
197
- resp = Aws::Plugins::UserAgent.feature('resource') do
197
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
198
198
  @client.list_buckets(options)
199
199
  end
200
200
  resp.data.buckets.each do |b|
@@ -3299,7 +3299,7 @@ module Aws::S3
3299
3299
 
3300
3300
  # @!attribute [rw] credentials
3301
3301
  # The established temporary security credentials for the created
3302
- # session..
3302
+ # session.
3303
3303
  # @return [Types::SessionCredentials]
3304
3304
  #
3305
3305
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSessionOutput AWS API Documentation
@@ -8452,6 +8452,30 @@ module Aws::S3
8452
8452
  # Not Satisfiable` error.
8453
8453
  # @return [String]
8454
8454
  #
8455
+ # @!attribute [rw] response_cache_control
8456
+ # Sets the `Cache-Control` header of the response.
8457
+ # @return [String]
8458
+ #
8459
+ # @!attribute [rw] response_content_disposition
8460
+ # Sets the `Content-Disposition` header of the response.
8461
+ # @return [String]
8462
+ #
8463
+ # @!attribute [rw] response_content_encoding
8464
+ # Sets the `Content-Encoding` header of the response.
8465
+ # @return [String]
8466
+ #
8467
+ # @!attribute [rw] response_content_language
8468
+ # Sets the `Content-Language` header of the response.
8469
+ # @return [String]
8470
+ #
8471
+ # @!attribute [rw] response_content_type
8472
+ # Sets the `Content-Type` header of the response.
8473
+ # @return [String]
8474
+ #
8475
+ # @!attribute [rw] response_expires
8476
+ # Sets the `Expires` header of the response.
8477
+ # @return [Time]
8478
+ #
8455
8479
  # @!attribute [rw] version_id
8456
8480
  # Version ID used to reference a specific version of the object.
8457
8481
  #
@@ -8543,6 +8567,12 @@ module Aws::S3
8543
8567
  :if_unmodified_since,
8544
8568
  :key,
8545
8569
  :range,
8570
+ :response_cache_control,
8571
+ :response_content_disposition,
8572
+ :response_content_encoding,
8573
+ :response_content_language,
8574
+ :response_content_type,
8575
+ :response_expires,
8546
8576
  :version_id,
8547
8577
  :sse_customer_algorithm,
8548
8578
  :sse_customer_key,
@@ -8559,10 +8589,11 @@ module Aws::S3
8559
8589
  #
8560
8590
  # @!attribute [rw] suffix
8561
8591
  # A suffix that is appended to a request that is for a directory on
8562
- # the website endpoint (for example,if the suffix is index.html and
8563
- # you make a request to samplebucket/images/ the data that is returned
8564
- # will be for the object with the key name images/index.html) The
8565
- # suffix must not be empty and must not include a slash character.
8592
+ # the website endpoint. (For example, if the suffix is `index.html`
8593
+ # and you make a request to `samplebucket/images/`, the data that is
8594
+ # returned will be for the object with the key name
8595
+ # `images/index.html`.) The suffix must not be empty and must not
8596
+ # include a slash character.
8566
8597
  #
8567
8598
  # Replacement must be made for object keys containing special
8568
8599
  # characters (such as carriage returns) when using XML requests. For
@@ -10122,7 +10153,7 @@ module Aws::S3
10122
10153
  # Encoding type used by Amazon S3 to encode object keys in the
10123
10154
  # response. If using `url`, non-ASCII characters used in an object's
10124
10155
  # key name will be URL encoded. For example, the object
10125
- # test\_file(3).png will appear as test\_file%283%29.png.
10156
+ # `test_file(3).png` will appear as `test_file%283%29.png`.
10126
10157
  # @return [String]
10127
10158
  #
10128
10159
  # @!attribute [rw] request_charged
@@ -10478,7 +10509,7 @@ module Aws::S3
10478
10509
  # Encoding type used by Amazon S3 to encode object keys in the
10479
10510
  # response. If using `url`, non-ASCII characters used in an object's
10480
10511
  # key name will be URL encoded. For example, the object
10481
- # test\_file(3).png will appear as test\_file%283%29.png.
10512
+ # `test_file(3).png` will appear as `test_file%283%29.png`.
10482
10513
  # @return [String]
10483
10514
  #
10484
10515
  # @!attribute [rw] max_keys
@@ -11173,10 +11204,10 @@ module Aws::S3
11173
11204
  # @return [Integer]
11174
11205
  #
11175
11206
  # @!attribute [rw] newer_noncurrent_versions
11176
- # Specifies how many newer noncurrent versions must exist before
11177
- # Amazon S3 can perform the associated action on a given version. If
11178
- # there are this many more recent noncurrent versions, Amazon S3 will
11179
- # take the associated action. For more information about noncurrent
11207
+ # Specifies how many noncurrent versions Amazon S3 will retain. You
11208
+ # can specify up to 100 noncurrent versions to retain. Amazon S3 will
11209
+ # permanently delete any additional noncurrent versions beyond the
11210
+ # specified number to retain. For more information about noncurrent
11180
11211
  # versions, see [Lifecycle configuration elements][1] in the *Amazon
11181
11212
  # S3 User Guide*.
11182
11213
  #
@@ -11220,12 +11251,12 @@ module Aws::S3
11220
11251
  # @return [String]
11221
11252
  #
11222
11253
  # @!attribute [rw] newer_noncurrent_versions
11223
- # Specifies how many newer noncurrent versions must exist before
11224
- # Amazon S3 can perform the associated action on a given version. If
11225
- # there are this many more recent noncurrent versions, Amazon S3 will
11226
- # take the associated action. For more information about noncurrent
11227
- # versions, see [Lifecycle configuration elements][1] in the *Amazon
11228
- # S3 User Guide*.
11254
+ # Specifies how many noncurrent versions Amazon S3 will retain in the
11255
+ # same storage class before transitioning objects. You can specify up
11256
+ # to 100 noncurrent versions to retain. Amazon S3 will transition any
11257
+ # additional noncurrent versions beyond the specified number to
11258
+ # retain. For more information about noncurrent versions, see
11259
+ # [Lifecycle configuration elements][1] in the *Amazon S3 User Guide*.
11229
11260
  #
11230
11261
  #
11231
11262
  #
data/lib/aws-sdk-s3.rb CHANGED
@@ -73,6 +73,6 @@ require_relative 'aws-sdk-s3/event_streams'
73
73
  # @!group service
74
74
  module Aws::S3
75
75
 
76
- GEM_VERSION = '1.147.0'
76
+ GEM_VERSION = '1.156.0'
77
77
 
78
78
  end
data/sig/client.rbs CHANGED
@@ -14,6 +14,8 @@ module Aws
14
14
  def self.new: (
15
15
  ?credentials: untyped,
16
16
  ?region: String,
17
+ ?access_grants: bool,
18
+ ?access_grants_credentials_provider: untyped,
17
19
  ?access_key_id: String,
18
20
  ?active_endpoint_cache: bool,
19
21
  ?adaptive_retry_wait_to_fill: bool,
@@ -60,6 +62,7 @@ module Aws
60
62
  ?sdk_ua_app_id: String,
61
63
  ?secret_access_key: String,
62
64
  ?session_token: String,
65
+ ?sigv4a_signing_region_set: Array[String],
63
66
  ?stub_responses: untyped,
64
67
  ?token_provider: untyped,
65
68
  ?use_accelerate_endpoint: bool,
@@ -961,6 +964,12 @@ module Aws
961
964
  ?if_unmodified_since: ::Time,
962
965
  key: ::String,
963
966
  ?range: ::String,
967
+ ?response_cache_control: ::String,
968
+ ?response_content_disposition: ::String,
969
+ ?response_content_encoding: ::String,
970
+ ?response_content_language: ::String,
971
+ ?response_content_type: ::String,
972
+ ?response_expires: ::Time,
964
973
  ?version_id: ::String,
965
974
  ?sse_customer_algorithm: ::String,
966
975
  ?sse_customer_key: ::String,
@@ -2326,6 +2335,12 @@ module Aws
2326
2335
  ?if_unmodified_since: ::Time,
2327
2336
  key: ::String,
2328
2337
  ?range: ::String,
2338
+ ?response_cache_control: ::String,
2339
+ ?response_content_disposition: ::String,
2340
+ ?response_content_encoding: ::String,
2341
+ ?response_content_language: ::String,
2342
+ ?response_content_type: ::String,
2343
+ ?response_expires: ::Time,
2329
2344
  ?version_id: ::String,
2330
2345
  ?sse_customer_algorithm: ::String,
2331
2346
  ?sse_customer_key: ::String,
@@ -2344,6 +2359,12 @@ module Aws
2344
2359
  ?if_unmodified_since: ::Time,
2345
2360
  key: ::String,
2346
2361
  ?range: ::String,
2362
+ ?response_cache_control: ::String,
2363
+ ?response_content_disposition: ::String,
2364
+ ?response_content_encoding: ::String,
2365
+ ?response_content_language: ::String,
2366
+ ?response_content_type: ::String,
2367
+ ?response_expires: ::Time,
2347
2368
  ?version_id: ::String,
2348
2369
  ?sse_customer_algorithm: ::String,
2349
2370
  ?sse_customer_key: ::String,
@@ -0,0 +1,19 @@
1
+ module Aws
2
+ module S3
3
+ class Bucket
4
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Bucket.html#clear!-instance_method
5
+ def clear!: () -> void
6
+
7
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Bucket.html#delete!-instance_method
8
+ def delete!: (?max_attempts: ::Integer, ?initial_wait: ::Float) -> void
9
+ | (?Hash[Symbol, untyped]) -> void
10
+
11
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Bucket.html#url-instance_method
12
+ def url: (?virtual_host: boolish, ?secure: boolish) -> String
13
+ | (?Hash[Symbol, untyped]) -> String
14
+
15
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Bucket.html#presigned_post-instance_method
16
+ def presigned_post: (Hash[Symbol, untyped]) -> untyped
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,38 @@
1
+ module Aws
2
+ module S3
3
+ class Object
4
+ alias size content_length
5
+
6
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#copy_from-instance_method
7
+ def copy_from: (untyped source, ?Hash[Symbol, untyped] options) -> void
8
+ | ...
9
+
10
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#copy_to-instance_method
11
+ def copy_to: (untyped target, ?Hash[Symbol, untyped] options) -> void
12
+
13
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#move_to-instance_method
14
+ def move_to: (untyped target, ?Hash[Symbol, untyped] options) -> void
15
+
16
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#presigned_post-instance_method
17
+ def presigned_post: (?Hash[Symbol, untyped]) -> untyped
18
+
19
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#presigned_url-instance_method
20
+ def presigned_url: (Symbol | String method, ?Hash[Symbol, untyped] params) -> String
21
+
22
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#presigned_request-instance_method
23
+ def presigned_request: (Symbol | String method, ?Hash[Symbol, untyped] params) -> [String, Hash[String, String]]
24
+
25
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#public_url-instance_method
26
+ def public_url: (?Hash[Symbol, untyped] options) -> String
27
+
28
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#upload_stream-instance_method
29
+ def upload_stream: (?Hash[Symbol, untyped] options) { (IO write_stream) -> void } -> bool
30
+
31
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#upload_file-instance_method
32
+ def upload_file: (untyped source, ?Hash[Symbol, untyped] options) ?{ (untyped response) -> void } -> bool
33
+
34
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/Object.html#download_file-instance_method
35
+ def download_file: (String destination, ?Hash[Symbol, untyped] options) -> bool
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,35 @@
1
+ module Aws
2
+ module S3
3
+ class ObjectSummary
4
+ alias content_length size
5
+
6
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#copy_from-instance_method
7
+ def copy_from: (untyped source, ?Hash[Symbol, untyped] options) -> void
8
+ | ...
9
+
10
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#copy_to-instance_method
11
+ def copy_to: (untyped target, ?Hash[Symbol, untyped] options) -> void
12
+
13
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#move_to-instance_method
14
+ def move_to: (untyped target, ?Hash[Symbol, untyped] options) -> void
15
+
16
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#presigned_post-instance_method
17
+ def presigned_post: (Hash[Symbol, untyped]) -> untyped
18
+
19
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#presigned_url-instance_method
20
+ def presigned_url: (Symbol | String method, ?Hash[Symbol, untyped] params) -> String
21
+
22
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#public_url-instance_method
23
+ def public_url: (?Hash[Symbol, untyped] options) -> String
24
+
25
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#upload_file-instance_method
26
+ def upload_file: (untyped source, ?Hash[Symbol, untyped] options) ?{ (untyped response) -> void } -> bool
27
+
28
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#upload_stream-instance_method
29
+ def upload_stream: (?Hash[Symbol, untyped] options) { (IO write_stream) -> void } -> bool
30
+
31
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/S3/ObjectSummary.html#download_file-instance_method
32
+ def download_file: (String destination, ?Hash[Symbol, untyped] options) -> bool
33
+ end
34
+ end
35
+ end
data/sig/object.rbs CHANGED
@@ -397,6 +397,12 @@ module Aws
397
397
  ?if_none_match: ::String,
398
398
  ?if_unmodified_since: ::Time,
399
399
  ?range: ::String,
400
+ ?response_cache_control: ::String,
401
+ ?response_content_disposition: ::String,
402
+ ?response_content_encoding: ::String,
403
+ ?response_content_language: ::String,
404
+ ?response_content_type: ::String,
405
+ ?response_expires: ::Time,
400
406
  ?version_id: ::String,
401
407
  ?sse_customer_algorithm: ::String,
402
408
  ?sse_customer_key: ::String,
@@ -102,6 +102,12 @@ module Aws
102
102
  ?if_none_match: ::String,
103
103
  ?if_unmodified_since: ::Time,
104
104
  ?range: ::String,
105
+ ?response_cache_control: ::String,
106
+ ?response_content_disposition: ::String,
107
+ ?response_content_encoding: ::String,
108
+ ?response_content_language: ::String,
109
+ ?response_content_type: ::String,
110
+ ?response_expires: ::Time,
105
111
  ?sse_customer_algorithm: ::String,
106
112
  ?sse_customer_key: ::String,
107
113
  ?sse_customer_key_md5: ::String,
data/sig/resource.rbs CHANGED
@@ -14,6 +14,8 @@ module Aws
14
14
  ?client: Client,
15
15
  ?credentials: untyped,
16
16
  ?region: String,
17
+ ?access_grants: bool,
18
+ ?access_grants_credentials_provider: untyped,
17
19
  ?access_key_id: String,
18
20
  ?active_endpoint_cache: bool,
19
21
  ?adaptive_retry_wait_to_fill: bool,
@@ -60,6 +62,7 @@ module Aws
60
62
  ?sdk_ua_app_id: String,
61
63
  ?secret_access_key: String,
62
64
  ?session_token: String,
65
+ ?sigv4a_signing_region_set: Array[String],
63
66
  ?stub_responses: untyped,
64
67
  ?token_provider: untyped,
65
68
  ?use_accelerate_endpoint: bool,
data/sig/types.rbs CHANGED
@@ -1132,6 +1132,12 @@ module Aws::S3
1132
1132
  attr_accessor if_unmodified_since: ::Time
1133
1133
  attr_accessor key: ::String
1134
1134
  attr_accessor range: ::String
1135
+ attr_accessor response_cache_control: ::String
1136
+ attr_accessor response_content_disposition: ::String
1137
+ attr_accessor response_content_encoding: ::String
1138
+ attr_accessor response_content_language: ::String
1139
+ attr_accessor response_content_type: ::String
1140
+ attr_accessor response_expires: ::Time
1135
1141
  attr_accessor version_id: ::String
1136
1142
  attr_accessor sse_customer_algorithm: ::String
1137
1143
  attr_accessor sse_customer_key: ::String
data/sig/waiters.rbs CHANGED
@@ -43,6 +43,12 @@ module Aws
43
43
  ?if_unmodified_since: ::Time,
44
44
  key: ::String,
45
45
  ?range: ::String,
46
+ ?response_cache_control: ::String,
47
+ ?response_content_disposition: ::String,
48
+ ?response_content_encoding: ::String,
49
+ ?response_content_language: ::String,
50
+ ?response_content_type: ::String,
51
+ ?response_expires: ::Time,
46
52
  ?version_id: ::String,
47
53
  ?sse_customer_algorithm: ::String,
48
54
  ?sse_customer_key: ::String,
@@ -67,6 +73,12 @@ module Aws
67
73
  ?if_unmodified_since: ::Time,
68
74
  key: ::String,
69
75
  ?range: ::String,
76
+ ?response_cache_control: ::String,
77
+ ?response_content_disposition: ::String,
78
+ ?response_content_encoding: ::String,
79
+ ?response_content_language: ::String,
80
+ ?response_content_type: ::String,
81
+ ?response_expires: ::Time,
70
82
  ?version_id: ::String,
71
83
  ?sse_customer_algorithm: ::String,
72
84
  ?sse_customer_key: ::String,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.147.0
4
+ version: 1.156.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-16 00:00:00.000000000 Z
11
+ date: 2024-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-kms
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.8'
33
+ version: '1.5'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.8'
40
+ version: '1.5'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: aws-sdk-core
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: '3'
48
48
  - - ">="
49
49
  - !ruby/object:Gem::Version
50
- version: 3.192.0
50
+ version: 3.201.0
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +57,7 @@ dependencies:
57
57
  version: '3'
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
- version: 3.192.0
60
+ version: 3.201.0
61
61
  description: Official AWS Ruby gem for Amazon Simple Storage Service (Amazon S3).
62
62
  This gem is part of the AWS SDK for Ruby.
63
63
  email:
@@ -70,6 +70,8 @@ files:
70
70
  - LICENSE.txt
71
71
  - VERSION
72
72
  - lib/aws-sdk-s3.rb
73
+ - lib/aws-sdk-s3/access_grants_credentials.rb
74
+ - lib/aws-sdk-s3/access_grants_credentials_provider.rb
73
75
  - lib/aws-sdk-s3/bucket.rb
74
76
  - lib/aws-sdk-s3/bucket_acl.rb
75
77
  - lib/aws-sdk-s3/bucket_cors.rb
@@ -127,7 +129,6 @@ files:
127
129
  - lib/aws-sdk-s3/errors.rb
128
130
  - lib/aws-sdk-s3/event_streams.rb
129
131
  - lib/aws-sdk-s3/express_credentials.rb
130
- - lib/aws-sdk-s3/express_credentials_cache.rb
131
132
  - lib/aws-sdk-s3/express_credentials_provider.rb
132
133
  - lib/aws-sdk-s3/file_downloader.rb
133
134
  - lib/aws-sdk-s3/file_part.rb
@@ -145,6 +146,7 @@ files:
145
146
  - lib/aws-sdk-s3/object_summary.rb
146
147
  - lib/aws-sdk-s3/object_version.rb
147
148
  - lib/aws-sdk-s3/plugins/accelerate.rb
149
+ - lib/aws-sdk-s3/plugins/access_grants.rb
148
150
  - lib/aws-sdk-s3/plugins/arn.rb
149
151
  - lib/aws-sdk-s3/plugins/bucket_dns.rb
150
152
  - lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb
@@ -182,6 +184,9 @@ files:
182
184
  - sig/bucket_versioning.rbs
183
185
  - sig/bucket_website.rbs
184
186
  - sig/client.rbs
187
+ - sig/customizations/bucket.rbs
188
+ - sig/customizations/object.rbs
189
+ - sig/customizations/object_summary.rbs
185
190
  - sig/errors.rbs
186
191
  - sig/multipart_upload.rbs
187
192
  - sig/multipart_upload_part.rbs
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Aws
4
- module S3
5
- # @api private
6
- class ExpressCredentialsCache
7
- def initialize
8
- @credentials = {}
9
- @mutex = Mutex.new
10
- end
11
-
12
- def [](bucket_name)
13
- @mutex.synchronize { @credentials[bucket_name] }
14
- end
15
-
16
- def []=(bucket_name, credential_provider)
17
- @mutex.synchronize do
18
- @credentials[bucket_name] = credential_provider
19
- end
20
- end
21
-
22
- def clear
23
- @mutex.synchronize { @credentials = {} }
24
- end
25
- end
26
-
27
- # @api private
28
- EXPRESS_CREDENTIALS_CACHE = ExpressCredentialsCache.new
29
- end
30
- end