aws-sdk-s3 1.76.0 → 1.80.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/aws-sdk-s3.rb +2 -2
- data/lib/aws-sdk-s3/bucket.rb +33 -2
- data/lib/aws-sdk-s3/bucket_acl.rb +5 -0
- data/lib/aws-sdk-s3/bucket_cors.rb +12 -1
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -1
- data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -1
- data/lib/aws-sdk-s3/bucket_logging.rb +5 -0
- data/lib/aws-sdk-s3/bucket_notification.rb +5 -0
- data/lib/aws-sdk-s3/bucket_policy.rb +12 -1
- data/lib/aws-sdk-s3/bucket_request_payment.rb +5 -0
- data/lib/aws-sdk-s3/bucket_tagging.rb +12 -1
- data/lib/aws-sdk-s3/bucket_versioning.rb +15 -0
- data/lib/aws-sdk-s3/bucket_website.rb +12 -1
- data/lib/aws-sdk-s3/client.rb +734 -122
- data/lib/aws-sdk-s3/client_api.rb +87 -0
- data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +13 -2
- data/lib/aws-sdk-s3/encryption/io_decrypter.rb +7 -6
- data/lib/aws-sdk-s3/encryptionV2/client.rb +3 -1
- data/lib/aws-sdk-s3/multipart_upload.rb +15 -0
- data/lib/aws-sdk-s3/multipart_upload_part.rb +50 -2
- data/lib/aws-sdk-s3/object.rb +75 -2
- data/lib/aws-sdk-s3/object_acl.rb +5 -0
- data/lib/aws-sdk-s3/object_summary.rb +75 -2
- data/lib/aws-sdk-s3/object_version.rb +20 -0
- data/lib/aws-sdk-s3/presigned_post.rb +1 -0
- data/lib/aws-sdk-s3/resource.rb +1 -1
- data/lib/aws-sdk-s3/types.rb +853 -91
- metadata +4 -4
@@ -7,6 +7,7 @@ module Aws
|
|
7
7
|
module Encryption
|
8
8
|
# @api private
|
9
9
|
class DecryptHandler < Seahorse::Client::Handler
|
10
|
+
@@warned_response_target_proc = false
|
10
11
|
|
11
12
|
V1_ENVELOPE_KEYS = %w(
|
12
13
|
x-amz-key
|
@@ -45,6 +46,16 @@ module Aws
|
|
45
46
|
def call(context)
|
46
47
|
attach_http_event_listeners(context)
|
47
48
|
apply_cse_user_agent(context)
|
49
|
+
|
50
|
+
if context[:response_target].is_a?(Proc) && !@@warned_response_target_proc
|
51
|
+
@@warned_response_target_proc = true
|
52
|
+
warn(':response_target is a Proc, or a block was provided. ' \
|
53
|
+
'Read the entire object to the ' \
|
54
|
+
'end before you start using the decrypted data. This is to ' \
|
55
|
+
'verify that the object has not been modified since it ' \
|
56
|
+
'was encrypted.')
|
57
|
+
end
|
58
|
+
|
48
59
|
@handler.call(context)
|
49
60
|
end
|
50
61
|
|
@@ -75,11 +86,11 @@ module Aws
|
|
75
86
|
end
|
76
87
|
|
77
88
|
def decryption_cipher(context)
|
78
|
-
if envelope = get_encryption_envelope(context)
|
89
|
+
if (envelope = get_encryption_envelope(context))
|
79
90
|
cipher = context[:encryption][:cipher_provider]
|
80
91
|
.decryption_cipher(
|
81
92
|
envelope,
|
82
|
-
|
93
|
+
context[:encryption]
|
83
94
|
)
|
84
95
|
[cipher, envelope]
|
85
96
|
else
|
@@ -9,9 +9,10 @@ module Aws
|
|
9
9
|
# @param [OpenSSL::Cipher] cipher
|
10
10
|
# @param [IO#write] io An IO-like object that responds to `#write`.
|
11
11
|
def initialize(cipher, io)
|
12
|
-
@cipher = cipher
|
12
|
+
@cipher = cipher
|
13
13
|
# Ensure that IO is reset between retries
|
14
14
|
@io = io.tap { |io| io.truncate(0) if io.respond_to?(:truncate) }
|
15
|
+
@cipher_buffer = String.new
|
15
16
|
end
|
16
17
|
|
17
18
|
# @return [#write]
|
@@ -19,17 +20,17 @@ module Aws
|
|
19
20
|
|
20
21
|
def write(chunk)
|
21
22
|
# decrypt and write
|
22
|
-
@
|
23
|
+
if @cipher.method(:update).arity == 1
|
24
|
+
@io.write(@cipher.update(chunk))
|
25
|
+
else
|
26
|
+
@io.write(@cipher.update(chunk, @cipher_buffer))
|
27
|
+
end
|
23
28
|
end
|
24
29
|
|
25
30
|
def finalize
|
26
31
|
@io.write(@cipher.final)
|
27
32
|
end
|
28
33
|
|
29
|
-
def size
|
30
|
-
@io.size
|
31
|
-
end
|
32
|
-
|
33
34
|
end
|
34
35
|
end
|
35
36
|
end
|
@@ -71,6 +71,7 @@ module Aws
|
|
71
71
|
# ## Required Configuration
|
72
72
|
#
|
73
73
|
# You must configure all of the following:
|
74
|
+
#
|
74
75
|
# * a key or key provider - See the Keys section below. The key provided determines
|
75
76
|
# the key wrapping schema(s) supported for both encryption and decryption.
|
76
77
|
# * `key_wrap_schema` - The key wrapping schema. It must match the type of key configured.
|
@@ -234,6 +235,7 @@ module Aws
|
|
234
235
|
def_delegators :@client, :config, :delete_object, :head_object, :build_request
|
235
236
|
|
236
237
|
# Creates a new encryption client. You must configure all of the following:
|
238
|
+
#
|
237
239
|
# * a key or key provider - The key provided also determines the key wrapping
|
238
240
|
# schema(s) supported for both encryption and decryption.
|
239
241
|
# * `key_wrap_schema` - The key wrapping schema. It must match the type of key configured.
|
@@ -392,7 +394,7 @@ module Aws
|
|
392
394
|
# @option (see S3::Client#get_object)
|
393
395
|
# @return (see S3::Client#get_object)
|
394
396
|
# @see S3::Client#get_object
|
395
|
-
# @note The `:range` request parameter is not
|
397
|
+
# @note The `:range` request parameter is not supported.
|
396
398
|
def get_object(params = {}, &block)
|
397
399
|
if params[:range]
|
398
400
|
raise NotImplementedError, '#get_object with :range not supported'
|
@@ -220,6 +220,7 @@ module Aws::S3
|
|
220
220
|
#
|
221
221
|
# multipart_upload.abort({
|
222
222
|
# request_payer: "requester", # accepts requester
|
223
|
+
# expected_bucket_owner: "AccountId",
|
223
224
|
# })
|
224
225
|
# @param [Hash] options ({})
|
225
226
|
# @option options [String] :request_payer
|
@@ -232,6 +233,10 @@ module Aws::S3
|
|
232
233
|
#
|
233
234
|
#
|
234
235
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
236
|
+
# @option options [String] :expected_bucket_owner
|
237
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
238
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
239
|
+
# Denied)` error.
|
235
240
|
# @return [Types::AbortMultipartUploadOutput]
|
236
241
|
def abort(options = {})
|
237
242
|
options = options.merge(
|
@@ -255,6 +260,7 @@ module Aws::S3
|
|
255
260
|
# ],
|
256
261
|
# },
|
257
262
|
# request_payer: "requester", # accepts requester
|
263
|
+
# expected_bucket_owner: "AccountId",
|
258
264
|
# })
|
259
265
|
# @param [Hash] options ({})
|
260
266
|
# @option options [Types::CompletedMultipartUpload] :multipart_upload
|
@@ -269,6 +275,10 @@ module Aws::S3
|
|
269
275
|
#
|
270
276
|
#
|
271
277
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
278
|
+
# @option options [String] :expected_bucket_owner
|
279
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
280
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
281
|
+
# Denied)` error.
|
272
282
|
# @return [Object]
|
273
283
|
def complete(options = {})
|
274
284
|
options = options.merge(
|
@@ -311,6 +321,7 @@ module Aws::S3
|
|
311
321
|
#
|
312
322
|
# parts = multipart_upload.parts({
|
313
323
|
# request_payer: "requester", # accepts requester
|
324
|
+
# expected_bucket_owner: "AccountId",
|
314
325
|
# })
|
315
326
|
# @param [Hash] options ({})
|
316
327
|
# @option options [String] :request_payer
|
@@ -323,6 +334,10 @@ module Aws::S3
|
|
323
334
|
#
|
324
335
|
#
|
325
336
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
337
|
+
# @option options [String] :expected_bucket_owner
|
338
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
339
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
340
|
+
# Denied)` error.
|
326
341
|
# @return [MultipartUploadPart::Collection]
|
327
342
|
def parts(options = {})
|
328
343
|
batches = Enumerator.new do |y|
|
@@ -221,11 +221,46 @@ module Aws::S3
|
|
221
221
|
# copy_source_sse_customer_key: "CopySourceSSECustomerKey",
|
222
222
|
# copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
|
223
223
|
# request_payer: "requester", # accepts requester
|
224
|
+
# expected_bucket_owner: "AccountId",
|
225
|
+
# expected_source_bucket_owner: "AccountId",
|
224
226
|
# })
|
225
227
|
# @param [Hash] options ({})
|
226
228
|
# @option options [required, String] :copy_source
|
227
|
-
#
|
228
|
-
#
|
229
|
+
# Specifies the source object for the copy operation. You specify the
|
230
|
+
# value in one of two formats, depending on whether you want to access
|
231
|
+
# the source object through an [access point][1]\:
|
232
|
+
#
|
233
|
+
# * For objects not accessed through an access point, specify the name
|
234
|
+
# of the source bucket and key of the source object, separated by a
|
235
|
+
# slash (/). For example, to copy the object `reports/january.pdf`
|
236
|
+
# from the bucket `awsexamplebucket`, use
|
237
|
+
# `awsexamplebucket/reports/january.pdf`. The value must be URL
|
238
|
+
# encoded.
|
239
|
+
#
|
240
|
+
# * For objects accessed through access points, specify the Amazon
|
241
|
+
# Resource Name (ARN) of the object as accessed through the access
|
242
|
+
# point, in the format
|
243
|
+
# `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
|
244
|
+
# For example, to copy the object `reports/january.pdf` through the
|
245
|
+
# access point `my-access-point` owned by account `123456789012` in
|
246
|
+
# Region `us-west-2`, use the URL encoding of
|
247
|
+
# `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
|
248
|
+
# The value must be URL encoded.
|
249
|
+
#
|
250
|
+
# <note markdown="1"> Amazon S3 supports copy operations using access points only when the
|
251
|
+
# source and destination buckets are in the same AWS Region.
|
252
|
+
#
|
253
|
+
# </note>
|
254
|
+
#
|
255
|
+
# To copy a specific version of an object, append
|
256
|
+
# `?versionId=<version-id>` to the value (for example,
|
257
|
+
# `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
|
258
|
+
# If you don't specify a version ID, Amazon S3 copies the latest
|
259
|
+
# version of the source object.
|
260
|
+
#
|
261
|
+
#
|
262
|
+
#
|
263
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
|
229
264
|
# @option options [String] :copy_source_if_match
|
230
265
|
# Copies the object if its entity tag (ETag) matches the specified tag.
|
231
266
|
# @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
|
@@ -278,6 +313,14 @@ module Aws::S3
|
|
278
313
|
#
|
279
314
|
#
|
280
315
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
316
|
+
# @option options [String] :expected_bucket_owner
|
317
|
+
# The account id of the expected destination bucket owner. If the
|
318
|
+
# destination bucket is owned by a different account, the request will
|
319
|
+
# fail with an HTTP `403 (Access Denied)` error.
|
320
|
+
# @option options [String] :expected_source_bucket_owner
|
321
|
+
# The account id of the expected source bucket owner. If the source
|
322
|
+
# bucket is owned by a different account, the request will fail with an
|
323
|
+
# HTTP `403 (Access Denied)` error.
|
281
324
|
# @return [Types::UploadPartCopyOutput]
|
282
325
|
def copy_from(options = {})
|
283
326
|
options = options.merge(
|
@@ -300,6 +343,7 @@ module Aws::S3
|
|
300
343
|
# sse_customer_key: "SSECustomerKey",
|
301
344
|
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
302
345
|
# request_payer: "requester", # accepts requester
|
346
|
+
# expected_bucket_owner: "AccountId",
|
303
347
|
# })
|
304
348
|
# @param [Hash] options ({})
|
305
349
|
# @option options [String, StringIO, File] :body
|
@@ -336,6 +380,10 @@ module Aws::S3
|
|
336
380
|
#
|
337
381
|
#
|
338
382
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
383
|
+
# @option options [String] :expected_bucket_owner
|
384
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
385
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
386
|
+
# Denied)` error.
|
339
387
|
# @return [Types::UploadPartOutput]
|
340
388
|
def upload(options = {})
|
341
389
|
options = options.merge(
|
data/lib/aws-sdk-s3/object.rb
CHANGED
@@ -545,6 +545,8 @@ module Aws::S3
|
|
545
545
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
546
546
|
# object_lock_retain_until_date: Time.now,
|
547
547
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
548
|
+
# expected_bucket_owner: "AccountId",
|
549
|
+
# expected_source_bucket_owner: "AccountId",
|
548
550
|
# })
|
549
551
|
# @param [Hash] options ({})
|
550
552
|
# @option options [String] :acl
|
@@ -562,8 +564,41 @@ module Aws::S3
|
|
562
564
|
# @option options [String] :content_type
|
563
565
|
# A standard MIME type describing the format of the object data.
|
564
566
|
# @option options [required, String] :copy_source
|
565
|
-
#
|
566
|
-
#
|
567
|
+
# Specifies the source object for the copy operation. You specify the
|
568
|
+
# value in one of two formats, depending on whether you want to access
|
569
|
+
# the source object through an [access point][1]\:
|
570
|
+
#
|
571
|
+
# * For objects not accessed through an access point, specify the name
|
572
|
+
# of the source bucket and the key of the source object, separated by
|
573
|
+
# a slash (/). For example, to copy the object `reports/january.pdf`
|
574
|
+
# from the bucket `awsexamplebucket`, use
|
575
|
+
# `awsexamplebucket/reports/january.pdf`. The value must be URL
|
576
|
+
# encoded.
|
577
|
+
#
|
578
|
+
# * For objects accessed through access points, specify the Amazon
|
579
|
+
# Resource Name (ARN) of the object as accessed through the access
|
580
|
+
# point, in the format
|
581
|
+
# `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
|
582
|
+
# For example, to copy the object `reports/january.pdf` through access
|
583
|
+
# point `my-access-point` owned by account `123456789012` in Region
|
584
|
+
# `us-west-2`, use the URL encoding of
|
585
|
+
# `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
|
586
|
+
# The value must be URL encoded.
|
587
|
+
#
|
588
|
+
# <note markdown="1"> Amazon S3 supports copy operations using access points only when the
|
589
|
+
# source and destination buckets are in the same AWS Region.
|
590
|
+
#
|
591
|
+
# </note>
|
592
|
+
#
|
593
|
+
# To copy a specific version of an object, append
|
594
|
+
# `?versionId=<version-id>` to the value (for example,
|
595
|
+
# `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
|
596
|
+
# If you don't specify a version ID, Amazon S3 copies the latest
|
597
|
+
# version of the source object.
|
598
|
+
#
|
599
|
+
#
|
600
|
+
#
|
601
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
|
567
602
|
# @option options [String] :copy_source_if_match
|
568
603
|
# Copies the object if its entity tag (ETag) matches the specified tag.
|
569
604
|
# @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
|
@@ -662,6 +697,14 @@ module Aws::S3
|
|
662
697
|
# expire.
|
663
698
|
# @option options [String] :object_lock_legal_hold_status
|
664
699
|
# Specifies whether you want to apply a Legal Hold to the copied object.
|
700
|
+
# @option options [String] :expected_bucket_owner
|
701
|
+
# The account id of the expected destination bucket owner. If the
|
702
|
+
# destination bucket is owned by a different account, the request will
|
703
|
+
# fail with an HTTP `403 (Access Denied)` error.
|
704
|
+
# @option options [String] :expected_source_bucket_owner
|
705
|
+
# The account id of the expected source bucket owner. If the source
|
706
|
+
# bucket is owned by a different account, the request will fail with an
|
707
|
+
# HTTP `403 (Access Denied)` error.
|
665
708
|
# @return [Types::CopyObjectOutput]
|
666
709
|
def copy_from(options = {})
|
667
710
|
options = options.merge(
|
@@ -679,6 +722,7 @@ module Aws::S3
|
|
679
722
|
# version_id: "ObjectVersionId",
|
680
723
|
# request_payer: "requester", # accepts requester
|
681
724
|
# bypass_governance_retention: false,
|
725
|
+
# expected_bucket_owner: "AccountId",
|
682
726
|
# })
|
683
727
|
# @param [Hash] options ({})
|
684
728
|
# @option options [String] :mfa
|
@@ -701,6 +745,10 @@ module Aws::S3
|
|
701
745
|
# @option options [Boolean] :bypass_governance_retention
|
702
746
|
# Indicates whether S3 Object Lock should bypass Governance-mode
|
703
747
|
# restrictions to process this operation.
|
748
|
+
# @option options [String] :expected_bucket_owner
|
749
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
750
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
751
|
+
# Denied)` error.
|
704
752
|
# @return [Types::DeleteObjectOutput]
|
705
753
|
def delete(options = {})
|
706
754
|
options = options.merge(
|
@@ -731,6 +779,7 @@ module Aws::S3
|
|
731
779
|
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
732
780
|
# request_payer: "requester", # accepts requester
|
733
781
|
# part_number: 1,
|
782
|
+
# expected_bucket_owner: "AccountId",
|
734
783
|
# })
|
735
784
|
# @param [Hash] options ({})
|
736
785
|
# @option options [String] :if_match
|
@@ -800,6 +849,10 @@ module Aws::S3
|
|
800
849
|
# between 1 and 10,000. Effectively performs a 'ranged' GET request
|
801
850
|
# for the part specified. Useful for downloading just a part of an
|
802
851
|
# object.
|
852
|
+
# @option options [String] :expected_bucket_owner
|
853
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
854
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
855
|
+
# Denied)` error.
|
803
856
|
# @return [Types::GetObjectOutput]
|
804
857
|
def get(options = {}, &block)
|
805
858
|
options = options.merge(
|
@@ -840,6 +893,7 @@ module Aws::S3
|
|
840
893
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
841
894
|
# object_lock_retain_until_date: Time.now,
|
842
895
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
896
|
+
# expected_bucket_owner: "AccountId",
|
843
897
|
# })
|
844
898
|
# @param [Hash] options ({})
|
845
899
|
# @option options [String] :acl
|
@@ -927,6 +981,10 @@ module Aws::S3
|
|
927
981
|
# @option options [String] :object_lock_legal_hold_status
|
928
982
|
# Specifies whether you want to apply a Legal Hold to the uploaded
|
929
983
|
# object.
|
984
|
+
# @option options [String] :expected_bucket_owner
|
985
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
986
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
987
|
+
# Denied)` error.
|
930
988
|
# @return [MultipartUpload]
|
931
989
|
def initiate_multipart_upload(options = {})
|
932
990
|
options = options.merge(
|
@@ -975,6 +1033,7 @@ module Aws::S3
|
|
975
1033
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
976
1034
|
# object_lock_retain_until_date: Time.now,
|
977
1035
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
1036
|
+
# expected_bucket_owner: "AccountId",
|
978
1037
|
# })
|
979
1038
|
# @param [Hash] options ({})
|
980
1039
|
# @option options [String] :acl
|
@@ -1144,6 +1203,10 @@ module Aws::S3
|
|
1144
1203
|
#
|
1145
1204
|
#
|
1146
1205
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
|
1206
|
+
# @option options [String] :expected_bucket_owner
|
1207
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
1208
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
1209
|
+
# Denied)` error.
|
1147
1210
|
# @return [Types::PutObjectOutput]
|
1148
1211
|
def put(options = {})
|
1149
1212
|
options = options.merge(
|
@@ -1240,6 +1303,7 @@ module Aws::S3
|
|
1240
1303
|
# },
|
1241
1304
|
# },
|
1242
1305
|
# request_payer: "requester", # accepts requester
|
1306
|
+
# expected_bucket_owner: "AccountId",
|
1243
1307
|
# })
|
1244
1308
|
# @param [Hash] options ({})
|
1245
1309
|
# @option options [String] :version_id
|
@@ -1256,6 +1320,10 @@ module Aws::S3
|
|
1256
1320
|
#
|
1257
1321
|
#
|
1258
1322
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
1323
|
+
# @option options [String] :expected_bucket_owner
|
1324
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
1325
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
1326
|
+
# Denied)` error.
|
1259
1327
|
# @return [Types::RestoreObjectOutput]
|
1260
1328
|
def restore_object(options = {})
|
1261
1329
|
options = options.merge(
|
@@ -1378,6 +1446,7 @@ module Aws::S3
|
|
1378
1446
|
# mfa: "MFA",
|
1379
1447
|
# request_payer: "requester", # accepts requester
|
1380
1448
|
# bypass_governance_retention: false,
|
1449
|
+
# expected_bucket_owner: "AccountId",
|
1381
1450
|
# })
|
1382
1451
|
# @param options ({})
|
1383
1452
|
# @option options [String] :mfa
|
@@ -1399,6 +1468,10 @@ module Aws::S3
|
|
1399
1468
|
# Specifies whether you want to delete this object even if it has a
|
1400
1469
|
# Governance-type Object Lock in place. You must have sufficient
|
1401
1470
|
# permissions to perform this operation.
|
1471
|
+
# @option options [String] :expected_bucket_owner
|
1472
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
1473
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
1474
|
+
# Denied)` error.
|
1402
1475
|
# @return [void]
|
1403
1476
|
def batch_delete!(options = {})
|
1404
1477
|
batch_enum.each do |batch|
|
@@ -228,6 +228,7 @@ module Aws::S3
|
|
228
228
|
# grant_write_acp: "GrantWriteACP",
|
229
229
|
# request_payer: "requester", # accepts requester
|
230
230
|
# version_id: "ObjectVersionId",
|
231
|
+
# expected_bucket_owner: "AccountId",
|
231
232
|
# })
|
232
233
|
# @param [Hash] options ({})
|
233
234
|
# @option options [String] :acl
|
@@ -273,6 +274,10 @@ module Aws::S3
|
|
273
274
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
274
275
|
# @option options [String] :version_id
|
275
276
|
# VersionId used to reference a specific version of the object.
|
277
|
+
# @option options [String] :expected_bucket_owner
|
278
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
279
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
280
|
+
# Denied)` error.
|
276
281
|
# @return [Types::PutObjectAclOutput]
|
277
282
|
def put(options = {})
|
278
283
|
options = options.merge(
|
@@ -310,6 +310,8 @@ module Aws::S3
|
|
310
310
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
311
311
|
# object_lock_retain_until_date: Time.now,
|
312
312
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
313
|
+
# expected_bucket_owner: "AccountId",
|
314
|
+
# expected_source_bucket_owner: "AccountId",
|
313
315
|
# })
|
314
316
|
# @param [Hash] options ({})
|
315
317
|
# @option options [String] :acl
|
@@ -327,8 +329,41 @@ module Aws::S3
|
|
327
329
|
# @option options [String] :content_type
|
328
330
|
# A standard MIME type describing the format of the object data.
|
329
331
|
# @option options [required, String] :copy_source
|
330
|
-
#
|
331
|
-
#
|
332
|
+
# Specifies the source object for the copy operation. You specify the
|
333
|
+
# value in one of two formats, depending on whether you want to access
|
334
|
+
# the source object through an [access point][1]\:
|
335
|
+
#
|
336
|
+
# * For objects not accessed through an access point, specify the name
|
337
|
+
# of the source bucket and the key of the source object, separated by
|
338
|
+
# a slash (/). For example, to copy the object `reports/january.pdf`
|
339
|
+
# from the bucket `awsexamplebucket`, use
|
340
|
+
# `awsexamplebucket/reports/january.pdf`. The value must be URL
|
341
|
+
# encoded.
|
342
|
+
#
|
343
|
+
# * For objects accessed through access points, specify the Amazon
|
344
|
+
# Resource Name (ARN) of the object as accessed through the access
|
345
|
+
# point, in the format
|
346
|
+
# `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
|
347
|
+
# For example, to copy the object `reports/january.pdf` through access
|
348
|
+
# point `my-access-point` owned by account `123456789012` in Region
|
349
|
+
# `us-west-2`, use the URL encoding of
|
350
|
+
# `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
|
351
|
+
# The value must be URL encoded.
|
352
|
+
#
|
353
|
+
# <note markdown="1"> Amazon S3 supports copy operations using access points only when the
|
354
|
+
# source and destination buckets are in the same AWS Region.
|
355
|
+
#
|
356
|
+
# </note>
|
357
|
+
#
|
358
|
+
# To copy a specific version of an object, append
|
359
|
+
# `?versionId=<version-id>` to the value (for example,
|
360
|
+
# `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
|
361
|
+
# If you don't specify a version ID, Amazon S3 copies the latest
|
362
|
+
# version of the source object.
|
363
|
+
#
|
364
|
+
#
|
365
|
+
#
|
366
|
+
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
|
332
367
|
# @option options [String] :copy_source_if_match
|
333
368
|
# Copies the object if its entity tag (ETag) matches the specified tag.
|
334
369
|
# @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
|
@@ -427,6 +462,14 @@ module Aws::S3
|
|
427
462
|
# expire.
|
428
463
|
# @option options [String] :object_lock_legal_hold_status
|
429
464
|
# Specifies whether you want to apply a Legal Hold to the copied object.
|
465
|
+
# @option options [String] :expected_bucket_owner
|
466
|
+
# The account id of the expected destination bucket owner. If the
|
467
|
+
# destination bucket is owned by a different account, the request will
|
468
|
+
# fail with an HTTP `403 (Access Denied)` error.
|
469
|
+
# @option options [String] :expected_source_bucket_owner
|
470
|
+
# The account id of the expected source bucket owner. If the source
|
471
|
+
# bucket is owned by a different account, the request will fail with an
|
472
|
+
# HTTP `403 (Access Denied)` error.
|
430
473
|
# @return [Types::CopyObjectOutput]
|
431
474
|
def copy_from(options = {})
|
432
475
|
options = options.merge(
|
@@ -444,6 +487,7 @@ module Aws::S3
|
|
444
487
|
# version_id: "ObjectVersionId",
|
445
488
|
# request_payer: "requester", # accepts requester
|
446
489
|
# bypass_governance_retention: false,
|
490
|
+
# expected_bucket_owner: "AccountId",
|
447
491
|
# })
|
448
492
|
# @param [Hash] options ({})
|
449
493
|
# @option options [String] :mfa
|
@@ -466,6 +510,10 @@ module Aws::S3
|
|
466
510
|
# @option options [Boolean] :bypass_governance_retention
|
467
511
|
# Indicates whether S3 Object Lock should bypass Governance-mode
|
468
512
|
# restrictions to process this operation.
|
513
|
+
# @option options [String] :expected_bucket_owner
|
514
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
515
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
516
|
+
# Denied)` error.
|
469
517
|
# @return [Types::DeleteObjectOutput]
|
470
518
|
def delete(options = {})
|
471
519
|
options = options.merge(
|
@@ -496,6 +544,7 @@ module Aws::S3
|
|
496
544
|
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
497
545
|
# request_payer: "requester", # accepts requester
|
498
546
|
# part_number: 1,
|
547
|
+
# expected_bucket_owner: "AccountId",
|
499
548
|
# })
|
500
549
|
# @param [Hash] options ({})
|
501
550
|
# @option options [String] :if_match
|
@@ -565,6 +614,10 @@ module Aws::S3
|
|
565
614
|
# between 1 and 10,000. Effectively performs a 'ranged' GET request
|
566
615
|
# for the part specified. Useful for downloading just a part of an
|
567
616
|
# object.
|
617
|
+
# @option options [String] :expected_bucket_owner
|
618
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
619
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
620
|
+
# Denied)` error.
|
568
621
|
# @return [Types::GetObjectOutput]
|
569
622
|
def get(options = {}, &block)
|
570
623
|
options = options.merge(
|
@@ -605,6 +658,7 @@ module Aws::S3
|
|
605
658
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
606
659
|
# object_lock_retain_until_date: Time.now,
|
607
660
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
661
|
+
# expected_bucket_owner: "AccountId",
|
608
662
|
# })
|
609
663
|
# @param [Hash] options ({})
|
610
664
|
# @option options [String] :acl
|
@@ -692,6 +746,10 @@ module Aws::S3
|
|
692
746
|
# @option options [String] :object_lock_legal_hold_status
|
693
747
|
# Specifies whether you want to apply a Legal Hold to the uploaded
|
694
748
|
# object.
|
749
|
+
# @option options [String] :expected_bucket_owner
|
750
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
751
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
752
|
+
# Denied)` error.
|
695
753
|
# @return [MultipartUpload]
|
696
754
|
def initiate_multipart_upload(options = {})
|
697
755
|
options = options.merge(
|
@@ -740,6 +798,7 @@ module Aws::S3
|
|
740
798
|
# object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
|
741
799
|
# object_lock_retain_until_date: Time.now,
|
742
800
|
# object_lock_legal_hold_status: "ON", # accepts ON, OFF
|
801
|
+
# expected_bucket_owner: "AccountId",
|
743
802
|
# })
|
744
803
|
# @param [Hash] options ({})
|
745
804
|
# @option options [String] :acl
|
@@ -909,6 +968,10 @@ module Aws::S3
|
|
909
968
|
#
|
910
969
|
#
|
911
970
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
|
971
|
+
# @option options [String] :expected_bucket_owner
|
972
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
973
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
974
|
+
# Denied)` error.
|
912
975
|
# @return [Types::PutObjectOutput]
|
913
976
|
def put(options = {})
|
914
977
|
options = options.merge(
|
@@ -1005,6 +1068,7 @@ module Aws::S3
|
|
1005
1068
|
# },
|
1006
1069
|
# },
|
1007
1070
|
# request_payer: "requester", # accepts requester
|
1071
|
+
# expected_bucket_owner: "AccountId",
|
1008
1072
|
# })
|
1009
1073
|
# @param [Hash] options ({})
|
1010
1074
|
# @option options [String] :version_id
|
@@ -1021,6 +1085,10 @@ module Aws::S3
|
|
1021
1085
|
#
|
1022
1086
|
#
|
1023
1087
|
# [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
1088
|
+
# @option options [String] :expected_bucket_owner
|
1089
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
1090
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
1091
|
+
# Denied)` error.
|
1024
1092
|
# @return [Types::RestoreObjectOutput]
|
1025
1093
|
def restore_object(options = {})
|
1026
1094
|
options = options.merge(
|
@@ -1152,6 +1220,7 @@ module Aws::S3
|
|
1152
1220
|
# mfa: "MFA",
|
1153
1221
|
# request_payer: "requester", # accepts requester
|
1154
1222
|
# bypass_governance_retention: false,
|
1223
|
+
# expected_bucket_owner: "AccountId",
|
1155
1224
|
# })
|
1156
1225
|
# @param options ({})
|
1157
1226
|
# @option options [String] :mfa
|
@@ -1173,6 +1242,10 @@ module Aws::S3
|
|
1173
1242
|
# Specifies whether you want to delete this object even if it has a
|
1174
1243
|
# Governance-type Object Lock in place. You must have sufficient
|
1175
1244
|
# permissions to perform this operation.
|
1245
|
+
# @option options [String] :expected_bucket_owner
|
1246
|
+
# The account id of the expected bucket owner. If the bucket is owned by
|
1247
|
+
# a different account, the request will fail with an HTTP `403 (Access
|
1248
|
+
# Denied)` error.
|
1176
1249
|
# @return [void]
|
1177
1250
|
def batch_delete!(options = {})
|
1178
1251
|
batch_enum.each do |batch|
|