aws-sdk-s3 1.132.0 → 1.142.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +62 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +421 -81
  5. data/lib/aws-sdk-s3/bucket_acl.rb +9 -9
  6. data/lib/aws-sdk-s3/bucket_cors.rb +12 -12
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -12
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -12
  9. data/lib/aws-sdk-s3/bucket_logging.rb +16 -9
  10. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  11. data/lib/aws-sdk-s3/bucket_policy.rb +58 -14
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -9
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -12
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +27 -27
  15. data/lib/aws-sdk-s3/bucket_website.rb +12 -12
  16. data/lib/aws-sdk-s3/client.rb +5675 -2521
  17. data/lib/aws-sdk-s3/client_api.rb +111 -16
  18. data/lib/aws-sdk-s3/customizations/object.rb +45 -2
  19. data/lib/aws-sdk-s3/customizations.rb +5 -0
  20. data/lib/aws-sdk-s3/endpoint_parameters.rb +32 -0
  21. data/lib/aws-sdk-s3/endpoint_provider.rb +82 -0
  22. data/lib/aws-sdk-s3/endpoints.rb +440 -0
  23. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  24. data/lib/aws-sdk-s3/express_credentials_cache.rb +30 -0
  25. data/lib/aws-sdk-s3/express_credentials_provider.rb +36 -0
  26. data/lib/aws-sdk-s3/file_downloader.rb +119 -24
  27. data/lib/aws-sdk-s3/multipart_file_uploader.rb +0 -1
  28. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +0 -1
  29. data/lib/aws-sdk-s3/multipart_upload.rb +69 -16
  30. data/lib/aws-sdk-s3/multipart_upload_part.rb +160 -35
  31. data/lib/aws-sdk-s3/object.rb +1504 -235
  32. data/lib/aws-sdk-s3/object_acl.rb +29 -15
  33. data/lib/aws-sdk-s3/object_summary.rb +1367 -254
  34. data/lib/aws-sdk-s3/object_version.rb +297 -42
  35. data/lib/aws-sdk-s3/plugins/endpoints.rb +13 -2
  36. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +90 -0
  37. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  38. data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
  39. data/lib/aws-sdk-s3/presigner.rb +2 -2
  40. data/lib/aws-sdk-s3/resource.rb +83 -11
  41. data/lib/aws-sdk-s3/types.rb +4500 -1351
  42. data/lib/aws-sdk-s3.rb +1 -1
  43. metadata +11 -7
@@ -19,9 +19,13 @@ module Aws::S3
19
19
  accelerate = parameters.accelerate
20
20
  use_global_endpoint = parameters.use_global_endpoint
21
21
  use_object_lambda_endpoint = parameters.use_object_lambda_endpoint
22
+ key = parameters.key
23
+ prefix = parameters.prefix
22
24
  disable_access_points = parameters.disable_access_points
23
25
  disable_multi_region_access_points = parameters.disable_multi_region_access_points
24
26
  use_arn_region = parameters.use_arn_region
27
+ use_s3_express_control_endpoint = parameters.use_s3_express_control_endpoint
28
+ disable_s3_express_session_auth = parameters.disable_s3_express_session_auth
25
29
  if Aws::Endpoints::Matchers.set?(region)
26
30
  if Aws::Endpoints::Matchers.boolean_equals?(accelerate, true) && Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
27
31
  raise ArgumentError, "Accelerate cannot be used with FIPS"
@@ -38,6 +42,84 @@ module Aws::S3
38
42
  if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && (partition_result = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-cn")
39
43
  raise ArgumentError, "Partition does not support FIPS"
40
44
  end
45
+ if Aws::Endpoints::Matchers.set?(bucket) && (bucket_suffix = Aws::Endpoints::Matchers.substring(bucket, 0, 6, true)) && Aws::Endpoints::Matchers.string_equals?(bucket_suffix, "--x-s3")
46
+ if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
47
+ raise ArgumentError, "S3Express does not support Dual-stack."
48
+ end
49
+ if Aws::Endpoints::Matchers.boolean_equals?(accelerate, true)
50
+ raise ArgumentError, "S3Express does not support S3 Accelerate."
51
+ end
52
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
53
+ if Aws::Endpoints::Matchers.set?(disable_s3_express_session_auth) && Aws::Endpoints::Matchers.boolean_equals?(disable_s3_express_session_auth, true)
54
+ if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(url, "isIp"), true)
55
+ if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket))
56
+ return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}/#{uri_encoded_bucket}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
57
+ end
58
+ end
59
+ if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
60
+ return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{bucket}.#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
61
+ end
62
+ raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
63
+ end
64
+ if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(url, "isIp"), true)
65
+ if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket))
66
+ return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}/#{uri_encoded_bucket}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
67
+ end
68
+ end
69
+ if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
70
+ return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{bucket}.#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
71
+ end
72
+ raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
73
+ end
74
+ if Aws::Endpoints::Matchers.set?(use_s3_express_control_endpoint) && Aws::Endpoints::Matchers.boolean_equals?(use_s3_express_control_endpoint, true)
75
+ if (uri_encoded_bucket = Aws::Endpoints::Matchers.uri_encode(bucket)) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(endpoint))
76
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
77
+ return Aws::Endpoints::Endpoint.new(url: "https://s3express-control-fips.#{region}.amazonaws.com/#{uri_encoded_bucket}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
78
+ end
79
+ return Aws::Endpoints::Endpoint.new(url: "https://s3express-control.#{region}.amazonaws.com/#{uri_encoded_bucket}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
80
+ end
81
+ end
82
+ if Aws::Endpoints::Matchers.aws_virtual_hostable_s3_bucket?(bucket, false)
83
+ if Aws::Endpoints::Matchers.set?(disable_s3_express_session_auth) && Aws::Endpoints::Matchers.boolean_equals?(disable_s3_express_session_auth, true)
84
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 14, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 14, 16, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
85
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
86
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
87
+ end
88
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
89
+ end
90
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 15, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 15, 17, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
91
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
92
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
93
+ end
94
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
95
+ end
96
+ raise ArgumentError, "Unrecognized S3Express bucket name format."
97
+ end
98
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 14, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 14, 16, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
99
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
100
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
101
+ end
102
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
103
+ end
104
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 15, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 15, 17, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
105
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
106
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
107
+ end
108
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
109
+ end
110
+ raise ArgumentError, "Unrecognized S3Express bucket name format."
111
+ end
112
+ raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
113
+ end
114
+ if Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(bucket)) && Aws::Endpoints::Matchers.set?(use_s3_express_control_endpoint) && Aws::Endpoints::Matchers.boolean_equals?(use_s3_express_control_endpoint, true)
115
+ if Aws::Endpoints::Matchers.set?(endpoint) && (url = Aws::Endpoints::Matchers.parse_url(endpoint))
116
+ return Aws::Endpoints::Endpoint.new(url: "#{url['scheme']}://#{url['authority']}#{url['path']}", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
117
+ end
118
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
119
+ return Aws::Endpoints::Endpoint.new(url: "https://s3express-control-fips.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
120
+ end
121
+ return Aws::Endpoints::Endpoint.new(url: "https://s3express-control.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
122
+ end
41
123
  if Aws::Endpoints::Matchers.set?(bucket) && (hardware_type = Aws::Endpoints::Matchers.substring(bucket, 49, 50, true)) && (region_prefix = Aws::Endpoints::Matchers.substring(bucket, 8, 12, true)) && (bucket_alias_suffix = Aws::Endpoints::Matchers.substring(bucket, 0, 7, true)) && (outpost_id = Aws::Endpoints::Matchers.substring(bucket, 32, 49, true)) && (region_partition = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.string_equals?(bucket_alias_suffix, "--op-s3")
42
124
  if Aws::Endpoints::Matchers.valid_host_label?(outpost_id, false)
43
125
  if Aws::Endpoints::Matchers.string_equals?(hardware_type, "e")