aws-sdk-s3 1.104.0 → 1.107.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 +20 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-s3/arn/access_point_arn.rb +6 -6
- data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +2 -3
- data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +6 -6
- data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +7 -6
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +2 -0
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +6 -0
- data/lib/aws-sdk-s3/client.rb +105 -77
- data/lib/aws-sdk-s3/client_api.rb +9 -0
- data/lib/aws-sdk-s3/customizations/object.rb +74 -1
- data/lib/aws-sdk-s3/plugins/accelerate.rb +7 -1
- data/lib/aws-sdk-s3/plugins/arn.rb +11 -24
- data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
- data/lib/aws-sdk-s3/plugins/dualstack.rb +25 -31
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +19 -4
- data/lib/aws-sdk-s3/types.rb +84 -3
- data/lib/aws-sdk-s3.rb +1 -1
- metadata +4 -4
@@ -386,6 +386,8 @@ module Aws::S3
|
|
386
386
|
ObjectLockToken = Shapes::StringShape.new(name: 'ObjectLockToken')
|
387
387
|
ObjectNotInActiveTierError = Shapes::StructureShape.new(name: 'ObjectNotInActiveTierError')
|
388
388
|
ObjectOwnership = Shapes::StringShape.new(name: 'ObjectOwnership')
|
389
|
+
ObjectSizeGreaterThanBytes = Shapes::IntegerShape.new(name: 'ObjectSizeGreaterThanBytes')
|
390
|
+
ObjectSizeLessThanBytes = Shapes::IntegerShape.new(name: 'ObjectSizeLessThanBytes')
|
389
391
|
ObjectStorageClass = Shapes::StringShape.new(name: 'ObjectStorageClass')
|
390
392
|
ObjectVersion = Shapes::StructureShape.new(name: 'ObjectVersion')
|
391
393
|
ObjectVersionId = Shapes::StringShape.new(name: 'ObjectVersionId')
|
@@ -561,6 +563,7 @@ module Aws::S3
|
|
561
563
|
UploadPartRequest = Shapes::StructureShape.new(name: 'UploadPartRequest')
|
562
564
|
UserMetadata = Shapes::ListShape.new(name: 'UserMetadata')
|
563
565
|
Value = Shapes::StringShape.new(name: 'Value')
|
566
|
+
VersionCount = Shapes::IntegerShape.new(name: 'VersionCount')
|
564
567
|
VersionIdMarker = Shapes::StringShape.new(name: 'VersionIdMarker')
|
565
568
|
VersioningConfiguration = Shapes::StructureShape.new(name: 'VersioningConfiguration')
|
566
569
|
WebsiteConfiguration = Shapes::StructureShape.new(name: 'WebsiteConfiguration')
|
@@ -1491,10 +1494,14 @@ module Aws::S3
|
|
1491
1494
|
|
1492
1495
|
LifecycleRuleAndOperator.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
|
1493
1496
|
LifecycleRuleAndOperator.add_member(:tags, Shapes::ShapeRef.new(shape: TagSet, location_name: "Tag", metadata: {"flattened"=>true}))
|
1497
|
+
LifecycleRuleAndOperator.add_member(:object_size_greater_than, Shapes::ShapeRef.new(shape: ObjectSizeGreaterThanBytes, location_name: "ObjectSizeGreaterThan"))
|
1498
|
+
LifecycleRuleAndOperator.add_member(:object_size_less_than, Shapes::ShapeRef.new(shape: ObjectSizeLessThanBytes, location_name: "ObjectSizeLessThan"))
|
1494
1499
|
LifecycleRuleAndOperator.struct_class = Types::LifecycleRuleAndOperator
|
1495
1500
|
|
1496
1501
|
LifecycleRuleFilter.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
|
1497
1502
|
LifecycleRuleFilter.add_member(:tag, Shapes::ShapeRef.new(shape: Tag, location_name: "Tag"))
|
1503
|
+
LifecycleRuleFilter.add_member(:object_size_greater_than, Shapes::ShapeRef.new(shape: ObjectSizeGreaterThanBytes, location_name: "ObjectSizeGreaterThan"))
|
1504
|
+
LifecycleRuleFilter.add_member(:object_size_less_than, Shapes::ShapeRef.new(shape: ObjectSizeLessThanBytes, location_name: "ObjectSizeLessThan"))
|
1498
1505
|
LifecycleRuleFilter.add_member(:and, Shapes::ShapeRef.new(shape: LifecycleRuleAndOperator, location_name: "And"))
|
1499
1506
|
LifecycleRuleFilter.struct_class = Types::LifecycleRuleFilter
|
1500
1507
|
|
@@ -1719,10 +1726,12 @@ module Aws::S3
|
|
1719
1726
|
NoSuchUpload.struct_class = Types::NoSuchUpload
|
1720
1727
|
|
1721
1728
|
NoncurrentVersionExpiration.add_member(:noncurrent_days, Shapes::ShapeRef.new(shape: Days, location_name: "NoncurrentDays"))
|
1729
|
+
NoncurrentVersionExpiration.add_member(:newer_noncurrent_versions, Shapes::ShapeRef.new(shape: VersionCount, location_name: "NewerNoncurrentVersions"))
|
1722
1730
|
NoncurrentVersionExpiration.struct_class = Types::NoncurrentVersionExpiration
|
1723
1731
|
|
1724
1732
|
NoncurrentVersionTransition.add_member(:noncurrent_days, Shapes::ShapeRef.new(shape: Days, location_name: "NoncurrentDays"))
|
1725
1733
|
NoncurrentVersionTransition.add_member(:storage_class, Shapes::ShapeRef.new(shape: TransitionStorageClass, location_name: "StorageClass"))
|
1734
|
+
NoncurrentVersionTransition.add_member(:newer_noncurrent_versions, Shapes::ShapeRef.new(shape: VersionCount, location_name: "NewerNoncurrentVersions"))
|
1726
1735
|
NoncurrentVersionTransition.struct_class = Types::NoncurrentVersionTransition
|
1727
1736
|
|
1728
1737
|
NoncurrentVersionTransitionList.member = Shapes::ShapeRef.new(shape: NoncurrentVersionTransition)
|
@@ -161,7 +161,7 @@ module Aws
|
|
161
161
|
#
|
162
162
|
# @param [Symbol] method
|
163
163
|
# The S3 operation to generate a presigned URL for. Valid values
|
164
|
-
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
164
|
+
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
165
165
|
# `:list_multipart_uploads`, `:complete_multipart_upload`,
|
166
166
|
# `:abort_multipart_upload`, `:list_parts`, and `:upload_part`.
|
167
167
|
#
|
@@ -215,6 +215,79 @@ module Aws
|
|
215
215
|
)
|
216
216
|
end
|
217
217
|
|
218
|
+
# Allows you to create presigned URL requests for S3 operations. This
|
219
|
+
# method returns a tuple containing the URL and the signed X-amz-* headers
|
220
|
+
# to be used with the presigned url.
|
221
|
+
#
|
222
|
+
# @example Pre-signed GET URL, valid for one hour
|
223
|
+
#
|
224
|
+
# obj.presigned_request(:get, expires_in: 3600)
|
225
|
+
# #=> ["https://bucket-name.s3.amazonaws.com/object-key?...", {}]
|
226
|
+
#
|
227
|
+
# @example Pre-signed PUT with a canned ACL
|
228
|
+
#
|
229
|
+
# # the object uploaded using this URL will be publicly accessible
|
230
|
+
# obj.presigned_request(:put, acl: 'public-read')
|
231
|
+
# #=> ["https://bucket-name.s3.amazonaws.com/object-key?...",
|
232
|
+
# {"x-amz-acl"=>"public-read"}]
|
233
|
+
#
|
234
|
+
# @param [Symbol] method
|
235
|
+
# The S3 operation to generate a presigned request for. Valid values
|
236
|
+
# are `:get`, `:put`, `:head`, `:delete`, `:create_multipart_upload`,
|
237
|
+
# `:list_multipart_uploads`, `:complete_multipart_upload`,
|
238
|
+
# `:abort_multipart_upload`, `:list_parts`, and `:upload_part`.
|
239
|
+
#
|
240
|
+
# @param [Hash] params
|
241
|
+
# Additional request parameters to use when generating the pre-signed
|
242
|
+
# request. See the related documentation in {Client} for accepted
|
243
|
+
# params.
|
244
|
+
#
|
245
|
+
# | Method | Client Method |
|
246
|
+
# |------------------------------|------------------------------------|
|
247
|
+
# | `:get` | {Client#get_object} |
|
248
|
+
# | `:put` | {Client#put_object} |
|
249
|
+
# | `:head` | {Client#head_object} |
|
250
|
+
# | `:delete` | {Client#delete_object} |
|
251
|
+
# | `:create_multipart_upload` | {Client#create_multipart_upload} |
|
252
|
+
# | `:list_multipart_uploads` | {Client#list_multipart_uploads} |
|
253
|
+
# | `:complete_multipart_upload` | {Client#complete_multipart_upload} |
|
254
|
+
# | `:abort_multipart_upload` | {Client#abort_multipart_upload} |
|
255
|
+
# | `:list_parts` | {Client#list_parts} |
|
256
|
+
# | `:upload_part` | {Client#upload_part} |
|
257
|
+
#
|
258
|
+
# @option params [Boolean] :virtual_host (false) When `true` the
|
259
|
+
# presigned URL will use the bucket name as a virtual host.
|
260
|
+
#
|
261
|
+
# bucket = Aws::S3::Bucket.new('my.bucket.com')
|
262
|
+
# bucket.object('key').presigned_request(virtual_host: true)
|
263
|
+
# #=> ["http://my.bucket.com/key?...", {}]
|
264
|
+
#
|
265
|
+
# @option params [Integer] :expires_in (900) Number of seconds before
|
266
|
+
# the pre-signed URL expires. This may not exceed one week (604800
|
267
|
+
# seconds). Note that the pre-signed URL is also only valid as long as
|
268
|
+
# credentials used to sign it are. For example, when using IAM roles,
|
269
|
+
# temporary tokens generated for signing also have a default expiration
|
270
|
+
# which will affect the effective expiration of the pre-signed URL.
|
271
|
+
#
|
272
|
+
# @raise [ArgumentError] Raised if `:expires_in` exceeds one week
|
273
|
+
# (604800 seconds).
|
274
|
+
#
|
275
|
+
# @return [String, Hash] A tuple with a presigned URL and headers that
|
276
|
+
# should be included with the request.
|
277
|
+
#
|
278
|
+
def presigned_request(method, params = {})
|
279
|
+
presigner = Presigner.new(client: client)
|
280
|
+
|
281
|
+
if %w(delete head get put).include?(method.to_s)
|
282
|
+
method = "#{method}_object".to_sym
|
283
|
+
end
|
284
|
+
|
285
|
+
presigner.presigned_request(
|
286
|
+
method.downcase,
|
287
|
+
params.merge(bucket: bucket_name, key: key)
|
288
|
+
)
|
289
|
+
end
|
290
|
+
|
218
291
|
# Returns the public (un-signed) URL for this object.
|
219
292
|
#
|
220
293
|
# s3.bucket('bucket-name').object('obj-key').public_url
|
@@ -41,11 +41,17 @@ each bucket. [Go here for more information](http://docs.aws.amazon.com/AmazonS3/
|
|
41
41
|
accelerate = context.params.delete(:use_accelerate_endpoint)
|
42
42
|
end
|
43
43
|
accelerate = context.config.use_accelerate_endpoint if accelerate.nil?
|
44
|
-
# Raise if :endpoint and
|
44
|
+
# Raise if :endpoint and accelerate are both provided
|
45
45
|
if accelerate && !context.config.regional_endpoint
|
46
46
|
raise ArgumentError,
|
47
47
|
'Cannot use both :use_accelerate_endpoint and :endpoint'
|
48
48
|
end
|
49
|
+
# Raise if :use_fips_endpoint and accelerate are both provided
|
50
|
+
if accelerate && context.config.use_fips_endpoint
|
51
|
+
raise ArgumentError,
|
52
|
+
'Cannot use both :use_accelerate_endpoint and '\
|
53
|
+
':use_fips_endpoint'
|
54
|
+
end
|
49
55
|
context[:use_accelerate_endpoint] = accelerate
|
50
56
|
@handler.call(context)
|
51
57
|
end
|
@@ -77,17 +77,10 @@ result in cross region requests.
|
|
77
77
|
if arn
|
78
78
|
validate_config!(context, arn)
|
79
79
|
|
80
|
-
fips = false
|
81
|
-
if resolved_region.include?('fips')
|
82
|
-
fips = true
|
83
|
-
resolved_region = resolved_region.gsub('fips-', '')
|
84
|
-
.gsub('-fips', '')
|
85
|
-
end
|
86
|
-
|
87
80
|
context.metadata[:s3_arn] = {
|
88
81
|
arn: arn,
|
89
82
|
resolved_region: resolved_region,
|
90
|
-
fips:
|
83
|
+
fips: context.config.use_fips_endpoint,
|
91
84
|
dualstack: extract_dualstack_config!(context)
|
92
85
|
}
|
93
86
|
end
|
@@ -126,7 +119,8 @@ result in cross region requests.
|
|
126
119
|
|
127
120
|
if !arn.support_dualstack? && context[:use_dualstack_endpoint]
|
128
121
|
raise ArgumentError,
|
129
|
-
'Cannot provide an Outpost Access Point
|
122
|
+
'Cannot provide an Outpost Access Point, Object Lambda, '\
|
123
|
+
'or Multi-region Access Point ARN'\
|
130
124
|
' when `:use_dualstack_endpoint` is set to true.'
|
131
125
|
end
|
132
126
|
|
@@ -135,6 +129,12 @@ result in cross region requests.
|
|
135
129
|
'Cannot provide a Multi-region Access Point ARN with '\
|
136
130
|
'`:s3_disable_multiregion_access_points` set to true'
|
137
131
|
end
|
132
|
+
|
133
|
+
if context.config.use_fips_endpoint && !arn.support_fips?
|
134
|
+
raise ArgumentError,
|
135
|
+
'FIPS client regions are not supported for this type '\
|
136
|
+
'of ARN.'
|
137
|
+
end
|
138
138
|
end
|
139
139
|
end
|
140
140
|
|
@@ -146,7 +146,7 @@ result in cross region requests.
|
|
146
146
|
s3_arn = resolve_arn_type!(arn)
|
147
147
|
s3_arn.validate_arn!
|
148
148
|
validate_region_config!(s3_arn, region, use_arn_region)
|
149
|
-
region = s3_arn.region if use_arn_region
|
149
|
+
region = s3_arn.region if use_arn_region
|
150
150
|
[region, s3_arn]
|
151
151
|
else
|
152
152
|
[region]
|
@@ -231,19 +231,6 @@ result in cross region requests.
|
|
231
231
|
raise Aws::Errors::InvalidARNPartitionError
|
232
232
|
end
|
233
233
|
else
|
234
|
-
if region.include?('fips')
|
235
|
-
# If ARN type doesn't support FIPS but the client region is FIPS
|
236
|
-
unless arn.support_fips?
|
237
|
-
raise ArgumentError,
|
238
|
-
'FIPS client regions are not supported for this type '\
|
239
|
-
'of ARN.'
|
240
|
-
end
|
241
|
-
|
242
|
-
fips = true
|
243
|
-
# Normalize the region so we can compare partition and regions
|
244
|
-
region = region.gsub('fips-', '').gsub('-fips', '')
|
245
|
-
end
|
246
|
-
|
247
234
|
# use_arn_region does not apply to MRAP (global) arns
|
248
235
|
unless arn.region.empty?
|
249
236
|
# Raise if the ARN and client regions are in different partitions
|
@@ -254,7 +241,7 @@ result in cross region requests.
|
|
254
241
|
|
255
242
|
# Raise if regions mismatch
|
256
243
|
# Either when it's a fips client or not using the ARN region
|
257
|
-
if
|
244
|
+
if !use_arn_region && region != arn.region
|
258
245
|
raise Aws::Errors::InvalidARNRegionError
|
259
246
|
end
|
260
247
|
end
|
@@ -5,18 +5,9 @@ module Aws
|
|
5
5
|
module Plugins
|
6
6
|
# @api private
|
7
7
|
class Dualstack < Seahorse::Client::Plugin
|
8
|
-
|
9
|
-
option(:use_dualstack_endpoint,
|
10
|
-
default: false,
|
11
|
-
doc_type: 'Boolean',
|
12
|
-
docstring: <<-DOCS)
|
13
|
-
When set to `true`, IPv6-compatible bucket endpoints will be used
|
14
|
-
for all operations.
|
15
|
-
DOCS
|
16
|
-
|
17
8
|
def add_handlers(handlers, config)
|
18
9
|
handlers.add(OptionHandler, step: :initialize)
|
19
|
-
handlers.add(DualstackHandler, step: :build, priority:
|
10
|
+
handlers.add(DualstackHandler, step: :build, priority: 49)
|
20
11
|
end
|
21
12
|
|
22
13
|
# @api private
|
@@ -40,38 +31,41 @@ for all operations.
|
|
40
31
|
# @api private
|
41
32
|
class DualstackHandler < Seahorse::Client::Handler
|
42
33
|
def call(context)
|
43
|
-
if
|
34
|
+
# only rewrite the endpoint if it's not a custom endpoint
|
35
|
+
# accelerate/ARN already handle dualstack cases, so ignore these
|
36
|
+
# check to see if dualstack is on but configured off via operation
|
37
|
+
if context.config.regional_endpoint &&
|
38
|
+
use_dualstack_endpoint?(context)
|
44
39
|
apply_dualstack_endpoint(context)
|
45
40
|
end
|
46
41
|
@handler.call(context)
|
47
42
|
end
|
48
43
|
|
49
44
|
private
|
50
|
-
def apply_dualstack_endpoint(context)
|
51
|
-
bucket_name = context.params[:bucket]
|
52
|
-
region = context.config.region
|
53
|
-
dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
|
54
45
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
46
|
+
def apply_dualstack_endpoint(context)
|
47
|
+
new_endpoint = Aws::Partitions::EndpointProvider.resolve(
|
48
|
+
context.config.region,
|
49
|
+
's3',
|
50
|
+
'regional',
|
51
|
+
{
|
52
|
+
dualstack: context[:use_dualstack_endpoint],
|
53
|
+
fips: context.config.use_fips_endpoint
|
54
|
+
}
|
55
|
+
)
|
60
56
|
endpoint = URI.parse(context.http_request.endpoint.to_s)
|
61
|
-
endpoint.
|
62
|
-
|
63
|
-
endpoint.host = host
|
64
|
-
context.http_request.endpoint = endpoint.to_s
|
65
|
-
end
|
66
|
-
|
67
|
-
def use_bucket_dns?(bucket_name, context)
|
68
|
-
ssl = context.http_request.endpoint.scheme == "https"
|
69
|
-
bucket_name && BucketDns.dns_compatible?(bucket_name, ssl) &&
|
70
|
-
!context.config.force_path_style
|
57
|
+
endpoint.host = URI.parse(new_endpoint).host
|
58
|
+
context.http_request.endpoint = endpoint
|
71
59
|
end
|
72
60
|
|
73
61
|
def use_dualstack_endpoint?(context)
|
74
|
-
|
62
|
+
# case when dualstack is turned off via operation
|
63
|
+
(context[:use_dualstack_endpoint] ||
|
64
|
+
context.config.use_dualstack_endpoint) &&
|
65
|
+
# accelerate plugin already applies dualstack
|
66
|
+
!context[:use_accelerate_endpoint] &&
|
67
|
+
# arns handle dualstack
|
68
|
+
!context.metadata[:s3_arn]
|
75
69
|
end
|
76
70
|
end
|
77
71
|
|
@@ -22,7 +22,9 @@ module Aws
|
|
22
22
|
# S3 removes core's signature_v4 plugin that checks for this
|
23
23
|
raise Aws::Errors::MissingRegionError if cfg.region.nil?
|
24
24
|
|
25
|
-
Aws::Partitions::EndpointProvider.signing_region(
|
25
|
+
Aws::Partitions::EndpointProvider.signing_region(
|
26
|
+
cfg.region, 's3'
|
27
|
+
)
|
26
28
|
end
|
27
29
|
|
28
30
|
def add_handlers(handlers, cfg)
|
@@ -162,7 +164,12 @@ module Aws
|
|
162
164
|
|
163
165
|
def custom_endpoint?(resp)
|
164
166
|
resolved_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(
|
165
|
-
resp.context.config.region
|
167
|
+
resp.context.config.region,
|
168
|
+
's3',
|
169
|
+
{
|
170
|
+
dualstack: resp.context[:use_dualstack_endpoint],
|
171
|
+
fips: resp.context.config.use_fips_endpoint
|
172
|
+
}
|
166
173
|
)
|
167
174
|
!resp.context.http_request.endpoint.hostname.include?(resolved_suffix)
|
168
175
|
end
|
@@ -234,12 +241,20 @@ module Aws
|
|
234
241
|
# Otherwise it will retry with the ARN as the bucket name.
|
235
242
|
def new_hostname(context, region)
|
236
243
|
uri = URI.parse(
|
237
|
-
Aws::Partitions::EndpointProvider.resolve(
|
244
|
+
Aws::Partitions::EndpointProvider.resolve(
|
245
|
+
region, 's3', 'regional',
|
246
|
+
{
|
247
|
+
dualstack: context[:use_dualstack_endpoint],
|
248
|
+
fips: context.config.use_fips_endpoint
|
249
|
+
}
|
250
|
+
)
|
238
251
|
)
|
239
252
|
|
240
253
|
if (arn = context.metadata[:s3_arn])
|
241
254
|
# Retry with the response region and not the ARN resolved one
|
242
|
-
ARN.resolve_url!(
|
255
|
+
ARN.resolve_url!(
|
256
|
+
uri, arn[:arn], region, arn[:fips], arn[:dualstack]
|
257
|
+
).host
|
243
258
|
else
|
244
259
|
"#{context.params[:bucket]}.#{uri.host}"
|
245
260
|
end
|
data/lib/aws-sdk-s3/types.rb
CHANGED
@@ -517,6 +517,8 @@ module Aws::S3
|
|
517
517
|
# key: "ObjectKey", # required
|
518
518
|
# value: "Value", # required
|
519
519
|
# },
|
520
|
+
# object_size_greater_than: 1,
|
521
|
+
# object_size_less_than: 1,
|
520
522
|
# and: {
|
521
523
|
# prefix: "Prefix",
|
522
524
|
# tags: [
|
@@ -525,6 +527,8 @@ module Aws::S3
|
|
525
527
|
# value: "Value", # required
|
526
528
|
# },
|
527
529
|
# ],
|
530
|
+
# object_size_greater_than: 1,
|
531
|
+
# object_size_less_than: 1,
|
528
532
|
# },
|
529
533
|
# },
|
530
534
|
# status: "Enabled", # required, accepts Enabled, Disabled
|
@@ -539,10 +543,12 @@ module Aws::S3
|
|
539
543
|
# {
|
540
544
|
# noncurrent_days: 1,
|
541
545
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
546
|
+
# newer_noncurrent_versions: 1,
|
542
547
|
# },
|
543
548
|
# ],
|
544
549
|
# noncurrent_version_expiration: {
|
545
550
|
# noncurrent_days: 1,
|
551
|
+
# newer_noncurrent_versions: 1,
|
546
552
|
# },
|
547
553
|
# abort_incomplete_multipart_upload: {
|
548
554
|
# days_after_initiation: 1,
|
@@ -1113,6 +1119,9 @@ module Aws::S3
|
|
1113
1119
|
#
|
1114
1120
|
# @!attribute [rw] parts
|
1115
1121
|
# Array of CompletedPart data types.
|
1122
|
+
#
|
1123
|
+
# If you do not supply a valid `Part` with your request, the service
|
1124
|
+
# sends back an HTTP 400 response.
|
1116
1125
|
# @return [Array<Types::CompletedPart>]
|
1117
1126
|
#
|
1118
1127
|
# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompletedMultipartUpload AWS API Documentation
|
@@ -7325,9 +7334,11 @@ module Aws::S3
|
|
7325
7334
|
# noncurrent_version_transition: {
|
7326
7335
|
# noncurrent_days: 1,
|
7327
7336
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
7337
|
+
# newer_noncurrent_versions: 1,
|
7328
7338
|
# },
|
7329
7339
|
# noncurrent_version_expiration: {
|
7330
7340
|
# noncurrent_days: 1,
|
7341
|
+
# newer_noncurrent_versions: 1,
|
7331
7342
|
# },
|
7332
7343
|
# abort_incomplete_multipart_upload: {
|
7333
7344
|
# days_after_initiation: 1,
|
@@ -7405,6 +7416,8 @@ module Aws::S3
|
|
7405
7416
|
# key: "ObjectKey", # required
|
7406
7417
|
# value: "Value", # required
|
7407
7418
|
# },
|
7419
|
+
# object_size_greater_than: 1,
|
7420
|
+
# object_size_less_than: 1,
|
7408
7421
|
# and: {
|
7409
7422
|
# prefix: "Prefix",
|
7410
7423
|
# tags: [
|
@@ -7413,6 +7426,8 @@ module Aws::S3
|
|
7413
7426
|
# value: "Value", # required
|
7414
7427
|
# },
|
7415
7428
|
# ],
|
7429
|
+
# object_size_greater_than: 1,
|
7430
|
+
# object_size_less_than: 1,
|
7416
7431
|
# },
|
7417
7432
|
# },
|
7418
7433
|
# status: "Enabled", # required, accepts Enabled, Disabled
|
@@ -7427,10 +7442,12 @@ module Aws::S3
|
|
7427
7442
|
# {
|
7428
7443
|
# noncurrent_days: 1,
|
7429
7444
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
7445
|
+
# newer_noncurrent_versions: 1,
|
7430
7446
|
# },
|
7431
7447
|
# ],
|
7432
7448
|
# noncurrent_version_expiration: {
|
7433
7449
|
# noncurrent_days: 1,
|
7450
|
+
# newer_noncurrent_versions: 1,
|
7434
7451
|
# },
|
7435
7452
|
# abort_incomplete_multipart_upload: {
|
7436
7453
|
# days_after_initiation: 1,
|
@@ -7538,6 +7555,8 @@ module Aws::S3
|
|
7538
7555
|
# value: "Value", # required
|
7539
7556
|
# },
|
7540
7557
|
# ],
|
7558
|
+
# object_size_greater_than: 1,
|
7559
|
+
# object_size_less_than: 1,
|
7541
7560
|
# }
|
7542
7561
|
#
|
7543
7562
|
# @!attribute [rw] prefix
|
@@ -7549,11 +7568,21 @@ module Aws::S3
|
|
7549
7568
|
# the rule to apply.
|
7550
7569
|
# @return [Array<Types::Tag>]
|
7551
7570
|
#
|
7571
|
+
# @!attribute [rw] object_size_greater_than
|
7572
|
+
# Minimum object size to which the rule applies.
|
7573
|
+
# @return [Integer]
|
7574
|
+
#
|
7575
|
+
# @!attribute [rw] object_size_less_than
|
7576
|
+
# Maximum object size to which the rule applies.
|
7577
|
+
# @return [Integer]
|
7578
|
+
#
|
7552
7579
|
# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRuleAndOperator AWS API Documentation
|
7553
7580
|
#
|
7554
7581
|
class LifecycleRuleAndOperator < Struct.new(
|
7555
7582
|
:prefix,
|
7556
|
-
:tags
|
7583
|
+
:tags,
|
7584
|
+
:object_size_greater_than,
|
7585
|
+
:object_size_less_than)
|
7557
7586
|
SENSITIVE = []
|
7558
7587
|
include Aws::Structure
|
7559
7588
|
end
|
@@ -7571,6 +7600,8 @@ module Aws::S3
|
|
7571
7600
|
# key: "ObjectKey", # required
|
7572
7601
|
# value: "Value", # required
|
7573
7602
|
# },
|
7603
|
+
# object_size_greater_than: 1,
|
7604
|
+
# object_size_less_than: 1,
|
7574
7605
|
# and: {
|
7575
7606
|
# prefix: "Prefix",
|
7576
7607
|
# tags: [
|
@@ -7579,6 +7610,8 @@ module Aws::S3
|
|
7579
7610
|
# value: "Value", # required
|
7580
7611
|
# },
|
7581
7612
|
# ],
|
7613
|
+
# object_size_greater_than: 1,
|
7614
|
+
# object_size_less_than: 1,
|
7582
7615
|
# },
|
7583
7616
|
# }
|
7584
7617
|
#
|
@@ -7599,6 +7632,14 @@ module Aws::S3
|
|
7599
7632
|
# to apply.
|
7600
7633
|
# @return [Types::Tag]
|
7601
7634
|
#
|
7635
|
+
# @!attribute [rw] object_size_greater_than
|
7636
|
+
# Minimum object size to which the rule applies.
|
7637
|
+
# @return [Integer]
|
7638
|
+
#
|
7639
|
+
# @!attribute [rw] object_size_less_than
|
7640
|
+
# Maximum object size to which the rule applies.
|
7641
|
+
# @return [Integer]
|
7642
|
+
#
|
7602
7643
|
# @!attribute [rw] and
|
7603
7644
|
# This is used in a Lifecycle Rule Filter to apply a logical AND to
|
7604
7645
|
# two or more predicates. The Lifecycle Rule will apply to any object
|
@@ -7610,6 +7651,8 @@ module Aws::S3
|
|
7610
7651
|
class LifecycleRuleFilter < Struct.new(
|
7611
7652
|
:prefix,
|
7612
7653
|
:tag,
|
7654
|
+
:object_size_greater_than,
|
7655
|
+
:object_size_less_than,
|
7613
7656
|
:and)
|
7614
7657
|
SENSITIVE = []
|
7615
7658
|
include Aws::Structure
|
@@ -9261,6 +9304,7 @@ module Aws::S3
|
|
9261
9304
|
#
|
9262
9305
|
# {
|
9263
9306
|
# noncurrent_days: 1,
|
9307
|
+
# newer_noncurrent_versions: 1,
|
9264
9308
|
# }
|
9265
9309
|
#
|
9266
9310
|
# @!attribute [rw] noncurrent_days
|
@@ -9274,10 +9318,23 @@ module Aws::S3
|
|
9274
9318
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
|
9275
9319
|
# @return [Integer]
|
9276
9320
|
#
|
9321
|
+
# @!attribute [rw] newer_noncurrent_versions
|
9322
|
+
# Specifies how many noncurrent versions Amazon S3 will retain. If
|
9323
|
+
# there are this many more recent noncurrent versions, Amazon S3 will
|
9324
|
+
# take the associated action. For more information about noncurrent
|
9325
|
+
# versions, see [Lifecycle configuration elements][1] in the *Amazon
|
9326
|
+
# S3 User Guide*.
|
9327
|
+
#
|
9328
|
+
#
|
9329
|
+
#
|
9330
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html
|
9331
|
+
# @return [Integer]
|
9332
|
+
#
|
9277
9333
|
# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionExpiration AWS API Documentation
|
9278
9334
|
#
|
9279
9335
|
class NoncurrentVersionExpiration < Struct.new(
|
9280
|
-
:noncurrent_days
|
9336
|
+
:noncurrent_days,
|
9337
|
+
:newer_noncurrent_versions)
|
9281
9338
|
SENSITIVE = []
|
9282
9339
|
include Aws::Structure
|
9283
9340
|
end
|
@@ -9297,6 +9354,7 @@ module Aws::S3
|
|
9297
9354
|
# {
|
9298
9355
|
# noncurrent_days: 1,
|
9299
9356
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
9357
|
+
# newer_noncurrent_versions: 1,
|
9300
9358
|
# }
|
9301
9359
|
#
|
9302
9360
|
# @!attribute [rw] noncurrent_days
|
@@ -9314,11 +9372,24 @@ module Aws::S3
|
|
9314
9372
|
# The class of storage used to store the object.
|
9315
9373
|
# @return [String]
|
9316
9374
|
#
|
9375
|
+
# @!attribute [rw] newer_noncurrent_versions
|
9376
|
+
# Specifies how many noncurrent versions Amazon S3 will retain. If
|
9377
|
+
# there are this many more recent noncurrent versions, Amazon S3 will
|
9378
|
+
# take the associated action. For more information about noncurrent
|
9379
|
+
# versions, see [Lifecycle configuration elements][1] in the *Amazon
|
9380
|
+
# S3 User Guide*.
|
9381
|
+
#
|
9382
|
+
#
|
9383
|
+
#
|
9384
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html
|
9385
|
+
# @return [Integer]
|
9386
|
+
#
|
9317
9387
|
# @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionTransition AWS API Documentation
|
9318
9388
|
#
|
9319
9389
|
class NoncurrentVersionTransition < Struct.new(
|
9320
9390
|
:noncurrent_days,
|
9321
|
-
:storage_class
|
9391
|
+
:storage_class,
|
9392
|
+
:newer_noncurrent_versions)
|
9322
9393
|
SENSITIVE = []
|
9323
9394
|
include Aws::Structure
|
9324
9395
|
end
|
@@ -10599,6 +10670,8 @@ module Aws::S3
|
|
10599
10670
|
# key: "ObjectKey", # required
|
10600
10671
|
# value: "Value", # required
|
10601
10672
|
# },
|
10673
|
+
# object_size_greater_than: 1,
|
10674
|
+
# object_size_less_than: 1,
|
10602
10675
|
# and: {
|
10603
10676
|
# prefix: "Prefix",
|
10604
10677
|
# tags: [
|
@@ -10607,6 +10680,8 @@ module Aws::S3
|
|
10607
10680
|
# value: "Value", # required
|
10608
10681
|
# },
|
10609
10682
|
# ],
|
10683
|
+
# object_size_greater_than: 1,
|
10684
|
+
# object_size_less_than: 1,
|
10610
10685
|
# },
|
10611
10686
|
# },
|
10612
10687
|
# status: "Enabled", # required, accepts Enabled, Disabled
|
@@ -10621,10 +10696,12 @@ module Aws::S3
|
|
10621
10696
|
# {
|
10622
10697
|
# noncurrent_days: 1,
|
10623
10698
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
10699
|
+
# newer_noncurrent_versions: 1,
|
10624
10700
|
# },
|
10625
10701
|
# ],
|
10626
10702
|
# noncurrent_version_expiration: {
|
10627
10703
|
# noncurrent_days: 1,
|
10704
|
+
# newer_noncurrent_versions: 1,
|
10628
10705
|
# },
|
10629
10706
|
# abort_incomplete_multipart_upload: {
|
10630
10707
|
# days_after_initiation: 1,
|
@@ -10684,9 +10761,11 @@ module Aws::S3
|
|
10684
10761
|
# noncurrent_version_transition: {
|
10685
10762
|
# noncurrent_days: 1,
|
10686
10763
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
10764
|
+
# newer_noncurrent_versions: 1,
|
10687
10765
|
# },
|
10688
10766
|
# noncurrent_version_expiration: {
|
10689
10767
|
# noncurrent_days: 1,
|
10768
|
+
# newer_noncurrent_versions: 1,
|
10690
10769
|
# },
|
10691
10770
|
# abort_incomplete_multipart_upload: {
|
10692
10771
|
# days_after_initiation: 1,
|
@@ -13700,9 +13779,11 @@ module Aws::S3
|
|
13700
13779
|
# noncurrent_version_transition: {
|
13701
13780
|
# noncurrent_days: 1,
|
13702
13781
|
# storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
|
13782
|
+
# newer_noncurrent_versions: 1,
|
13703
13783
|
# },
|
13704
13784
|
# noncurrent_version_expiration: {
|
13705
13785
|
# noncurrent_days: 1,
|
13786
|
+
# newer_noncurrent_versions: 1,
|
13706
13787
|
# },
|
13707
13788
|
# abort_incomplete_multipart_upload: {
|
13708
13789
|
# days_after_initiation: 1,
|