aws-sdk-s3 1.0.0.rc2 → 1.0.0.rc3
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/lib/aws-sdk-s3.rb +1 -1
- data/lib/aws-sdk-s3/bucket.rb +540 -542
- data/lib/aws-sdk-s3/bucket_acl.rb +144 -146
- data/lib/aws-sdk-s3/bucket_cors.rb +122 -124
- data/lib/aws-sdk-s3/bucket_lifecycle.rb +140 -142
- data/lib/aws-sdk-s3/bucket_logging.rb +119 -121
- data/lib/aws-sdk-s3/bucket_notification.rb +162 -164
- data/lib/aws-sdk-s3/bucket_policy.rb +114 -116
- data/lib/aws-sdk-s3/bucket_request_payment.rb +105 -107
- data/lib/aws-sdk-s3/bucket_tagging.rb +119 -121
- data/lib/aws-sdk-s3/bucket_versioning.rb +162 -164
- data/lib/aws-sdk-s3/bucket_website.rb +150 -152
- data/lib/aws-sdk-s3/client.rb +4380 -3611
- data/lib/aws-sdk-s3/client_api.rb +2343 -2345
- data/lib/aws-sdk-s3/customizations/object.rb +3 -2
- data/lib/aws-sdk-s3/errors.rb +4 -13
- data/lib/aws-sdk-s3/multipart_upload.rb +240 -242
- data/lib/aws-sdk-s3/multipart_upload_part.rb +273 -275
- data/lib/aws-sdk-s3/object.rb +879 -881
- data/lib/aws-sdk-s3/object_acl.rb +186 -188
- data/lib/aws-sdk-s3/object_summary.rb +751 -753
- data/lib/aws-sdk-s3/object_version.rb +356 -358
- data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
- data/lib/aws-sdk-s3/plugins/s3_signer.rb +1 -1
- data/lib/aws-sdk-s3/presigner.rb +6 -2
- data/lib/aws-sdk-s3/resource.rb +79 -78
- data/lib/aws-sdk-s3/types.rb +7678 -6939
- data/lib/aws-sdk-s3/waiters.rb +150 -151
- metadata +4 -4
@@ -1,138 +1,375 @@
|
|
1
1
|
# WARNING ABOUT GENERATED CODE
|
2
2
|
#
|
3
|
-
# This file is generated. See the contributing for
|
3
|
+
# This file is generated. See the contributing guide for more information:
|
4
4
|
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
5
|
#
|
6
6
|
# WARNING ABOUT GENERATED CODE
|
7
7
|
|
8
|
-
module Aws
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
8
|
+
module Aws::S3
|
9
|
+
class ObjectVersion
|
10
|
+
|
11
|
+
extend Aws::Deprecations
|
12
|
+
|
13
|
+
# @overload def initialize(bucket_name, object_key, id, options = {})
|
14
|
+
# @param [String] bucket_name
|
15
|
+
# @param [String] object_key
|
16
|
+
# @param [String] id
|
17
|
+
# @option options [Client] :client
|
18
|
+
# @overload def initialize(options = {})
|
19
|
+
# @option options [required, String] :bucket_name
|
20
|
+
# @option options [required, String] :object_key
|
21
|
+
# @option options [required, String] :id
|
22
|
+
# @option options [Client] :client
|
23
|
+
def initialize(*args)
|
24
|
+
options = Hash === args.last ? args.pop.dup : {}
|
25
|
+
@bucket_name = extract_bucket_name(args, options)
|
26
|
+
@object_key = extract_object_key(args, options)
|
27
|
+
@id = extract_id(args, options)
|
28
|
+
@data = options.delete(:data)
|
29
|
+
@client = options.delete(:client) || Client.new(options)
|
30
|
+
end
|
32
31
|
|
33
|
-
|
32
|
+
# @!group Read-Only Attributes
|
34
33
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
# @return [String]
|
35
|
+
def bucket_name
|
36
|
+
@bucket_name
|
37
|
+
end
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
# @return [String]
|
40
|
+
def object_key
|
41
|
+
@object_key
|
42
|
+
end
|
44
43
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
# @return [String]
|
45
|
+
def id
|
46
|
+
@id
|
47
|
+
end
|
49
48
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
# @return [String]
|
50
|
+
def etag
|
51
|
+
data.etag
|
52
|
+
end
|
54
53
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
# Size in bytes of the object.
|
55
|
+
# @return [Integer]
|
56
|
+
def size
|
57
|
+
data.size
|
58
|
+
end
|
60
59
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
60
|
+
# The class of storage used to store the object.
|
61
|
+
# @return [String]
|
62
|
+
def storage_class
|
63
|
+
data.storage_class
|
64
|
+
end
|
66
65
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
66
|
+
# The object key.
|
67
|
+
# @return [String]
|
68
|
+
def key
|
69
|
+
data.key
|
70
|
+
end
|
72
71
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
72
|
+
# Version ID of an object.
|
73
|
+
# @return [String]
|
74
|
+
def version_id
|
75
|
+
data.version_id
|
76
|
+
end
|
78
77
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
78
|
+
# Specifies whether the object is (true) or is not (false) the latest
|
79
|
+
# version of an object.
|
80
|
+
# @return [Boolean]
|
81
|
+
def is_latest
|
82
|
+
data.is_latest
|
83
|
+
end
|
85
84
|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
85
|
+
# Date and time the object was last modified.
|
86
|
+
# @return [Time]
|
87
|
+
def last_modified
|
88
|
+
data.last_modified
|
89
|
+
end
|
91
90
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
91
|
+
# @return [Types::Owner]
|
92
|
+
def owner
|
93
|
+
data.owner
|
94
|
+
end
|
96
95
|
|
97
|
-
|
96
|
+
# @!endgroup
|
98
97
|
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
98
|
+
# @return [Client]
|
99
|
+
def client
|
100
|
+
@client
|
101
|
+
end
|
102
|
+
|
103
|
+
# @raise [NotImplementedError]
|
104
|
+
# @api private
|
105
|
+
def load
|
106
|
+
msg = "#load is not implemented, data only available via enumeration"
|
107
|
+
raise NotImplementedError, msg
|
108
|
+
end
|
109
|
+
alias :reload :load
|
110
|
+
|
111
|
+
# @raise [NotImplementedError] Raises when {#data_loaded?} is `false`.
|
112
|
+
# @return [Types::ObjectVersion]
|
113
|
+
# Returns the data for this {ObjectVersion}.
|
114
|
+
def data
|
115
|
+
load unless @data
|
116
|
+
@data
|
117
|
+
end
|
118
|
+
|
119
|
+
# @return [Boolean]
|
120
|
+
# Returns `true` if this resource is loaded. Accessing attributes or
|
121
|
+
# {#data} on an unloaded resource will trigger a call to {#load}.
|
122
|
+
def data_loaded?
|
123
|
+
!!@data
|
124
|
+
end
|
125
|
+
|
126
|
+
# @!group Actions
|
127
|
+
|
128
|
+
# @example Request syntax with placeholder values
|
129
|
+
#
|
130
|
+
# object_version.delete({
|
131
|
+
# mfa: "MFA",
|
132
|
+
# request_payer: "requester", # accepts requester
|
133
|
+
# })
|
134
|
+
# @param [Hash] options ({})
|
135
|
+
# @option options [String] :mfa
|
136
|
+
# The concatenation of the authentication device's serial number, a
|
137
|
+
# space, and the value that is displayed on your authentication device.
|
138
|
+
# @option options [String] :request_payer
|
139
|
+
# Confirms that the requester knows that she or he will be charged for
|
140
|
+
# the request. Bucket owners need not specify this parameter in their
|
141
|
+
# requests. Documentation on downloading objects from requester pays
|
142
|
+
# buckets can be found at
|
143
|
+
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
144
|
+
# @return [Types::DeleteObjectOutput]
|
145
|
+
def delete(options = {})
|
146
|
+
options = options.merge(
|
147
|
+
bucket: @bucket_name,
|
148
|
+
key: @object_key,
|
149
|
+
version_id: @id
|
150
|
+
)
|
151
|
+
resp = @client.delete_object(options)
|
152
|
+
resp.data
|
153
|
+
end
|
103
154
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
155
|
+
# @example Request syntax with placeholder values
|
156
|
+
#
|
157
|
+
# object_version.get({
|
158
|
+
# if_match: "IfMatch",
|
159
|
+
# if_modified_since: Time.now,
|
160
|
+
# if_none_match: "IfNoneMatch",
|
161
|
+
# if_unmodified_since: Time.now,
|
162
|
+
# range: "Range",
|
163
|
+
# response_cache_control: "ResponseCacheControl",
|
164
|
+
# response_content_disposition: "ResponseContentDisposition",
|
165
|
+
# response_content_encoding: "ResponseContentEncoding",
|
166
|
+
# response_content_language: "ResponseContentLanguage",
|
167
|
+
# response_content_type: "ResponseContentType",
|
168
|
+
# response_expires: Time.now,
|
169
|
+
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
170
|
+
# sse_customer_key: "SSECustomerKey",
|
171
|
+
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
172
|
+
# request_payer: "requester", # accepts requester
|
173
|
+
# part_number: 1,
|
174
|
+
# })
|
175
|
+
# @param [Hash] options ({})
|
176
|
+
# @option options [String] :if_match
|
177
|
+
# Return the object only if its entity tag (ETag) is the same as the one
|
178
|
+
# specified, otherwise return a 412 (precondition failed).
|
179
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
180
|
+
# Return the object only if it has been modified since the specified
|
181
|
+
# time, otherwise return a 304 (not modified).
|
182
|
+
# @option options [String] :if_none_match
|
183
|
+
# Return the object only if its entity tag (ETag) is different from the
|
184
|
+
# one specified, otherwise return a 304 (not modified).
|
185
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
186
|
+
# Return the object only if it has not been modified since the specified
|
187
|
+
# time, otherwise return a 412 (precondition failed).
|
188
|
+
# @option options [String] :range
|
189
|
+
# Downloads the specified range bytes of an object. For more information
|
190
|
+
# about the HTTP Range header, go to
|
191
|
+
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
|
192
|
+
# @option options [String] :response_cache_control
|
193
|
+
# Sets the Cache-Control header of the response.
|
194
|
+
# @option options [String] :response_content_disposition
|
195
|
+
# Sets the Content-Disposition header of the response
|
196
|
+
# @option options [String] :response_content_encoding
|
197
|
+
# Sets the Content-Encoding header of the response.
|
198
|
+
# @option options [String] :response_content_language
|
199
|
+
# Sets the Content-Language header of the response.
|
200
|
+
# @option options [String] :response_content_type
|
201
|
+
# Sets the Content-Type header of the response.
|
202
|
+
# @option options [Time,DateTime,Date,Integer,String] :response_expires
|
203
|
+
# Sets the Expires header of the response.
|
204
|
+
# @option options [String] :sse_customer_algorithm
|
205
|
+
# Specifies the algorithm to use to when encrypting the object (e.g.,
|
206
|
+
# AES256).
|
207
|
+
# @option options [String] :sse_customer_key
|
208
|
+
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
209
|
+
# encrypting data. This value is used to store the object and then it is
|
210
|
+
# discarded; Amazon does not store the encryption key. The key must be
|
211
|
+
# appropriate for use with the algorithm specified in the
|
212
|
+
# x-amz-server-side-encryption-customer-algorithm header.
|
213
|
+
# @option options [String] :sse_customer_key_md5
|
214
|
+
# Specifies the 128-bit MD5 digest of the encryption key according to
|
215
|
+
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
216
|
+
# ensure the encryption key was transmitted without error.
|
217
|
+
# @option options [String] :request_payer
|
218
|
+
# Confirms that the requester knows that she or he will be charged for
|
219
|
+
# the request. Bucket owners need not specify this parameter in their
|
220
|
+
# requests. Documentation on downloading objects from requester pays
|
221
|
+
# buckets can be found at
|
222
|
+
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
223
|
+
# @option options [Integer] :part_number
|
224
|
+
# Part number of the object being read. This is a positive integer
|
225
|
+
# between 1 and 10,000. Effectively performs a 'ranged' GET request
|
226
|
+
# for the part specified. Useful for downloading just a part of an
|
227
|
+
# object.
|
228
|
+
# @return [Types::GetObjectOutput]
|
229
|
+
def get(options = {})
|
230
|
+
options = options.merge(
|
231
|
+
bucket: @bucket_name,
|
232
|
+
key: @object_key,
|
233
|
+
version_id: @id
|
234
|
+
)
|
235
|
+
resp = @client.get_object(options)
|
236
|
+
resp.data
|
237
|
+
end
|
238
|
+
|
239
|
+
# @example Request syntax with placeholder values
|
240
|
+
#
|
241
|
+
# object_version.head({
|
242
|
+
# if_match: "IfMatch",
|
243
|
+
# if_modified_since: Time.now,
|
244
|
+
# if_none_match: "IfNoneMatch",
|
245
|
+
# if_unmodified_since: Time.now,
|
246
|
+
# range: "Range",
|
247
|
+
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
248
|
+
# sse_customer_key: "SSECustomerKey",
|
249
|
+
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
250
|
+
# request_payer: "requester", # accepts requester
|
251
|
+
# part_number: 1,
|
252
|
+
# })
|
253
|
+
# @param [Hash] options ({})
|
254
|
+
# @option options [String] :if_match
|
255
|
+
# Return the object only if its entity tag (ETag) is the same as the one
|
256
|
+
# specified, otherwise return a 412 (precondition failed).
|
257
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
258
|
+
# Return the object only if it has been modified since the specified
|
259
|
+
# time, otherwise return a 304 (not modified).
|
260
|
+
# @option options [String] :if_none_match
|
261
|
+
# Return the object only if its entity tag (ETag) is different from the
|
262
|
+
# one specified, otherwise return a 304 (not modified).
|
263
|
+
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
264
|
+
# Return the object only if it has not been modified since the specified
|
265
|
+
# time, otherwise return a 412 (precondition failed).
|
266
|
+
# @option options [String] :range
|
267
|
+
# Downloads the specified range bytes of an object. For more information
|
268
|
+
# about the HTTP Range header, go to
|
269
|
+
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
|
270
|
+
# @option options [String] :sse_customer_algorithm
|
271
|
+
# Specifies the algorithm to use to when encrypting the object (e.g.,
|
272
|
+
# AES256).
|
273
|
+
# @option options [String] :sse_customer_key
|
274
|
+
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
275
|
+
# encrypting data. This value is used to store the object and then it is
|
276
|
+
# discarded; Amazon does not store the encryption key. The key must be
|
277
|
+
# appropriate for use with the algorithm specified in the
|
278
|
+
# x-amz-server-side-encryption-customer-algorithm header.
|
279
|
+
# @option options [String] :sse_customer_key_md5
|
280
|
+
# Specifies the 128-bit MD5 digest of the encryption key according to
|
281
|
+
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
282
|
+
# ensure the encryption key was transmitted without error.
|
283
|
+
# @option options [String] :request_payer
|
284
|
+
# Confirms that the requester knows that she or he will be charged for
|
285
|
+
# the request. Bucket owners need not specify this parameter in their
|
286
|
+
# requests. Documentation on downloading objects from requester pays
|
287
|
+
# buckets can be found at
|
288
|
+
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
289
|
+
# @option options [Integer] :part_number
|
290
|
+
# Part number of the object being read. This is a positive integer
|
291
|
+
# between 1 and 10,000. Effectively performs a 'ranged' HEAD request
|
292
|
+
# for the part specified. Useful querying about the size of the part and
|
293
|
+
# the number of parts in this object.
|
294
|
+
# @return [Types::HeadObjectOutput]
|
295
|
+
def head(options = {})
|
296
|
+
options = options.merge(
|
297
|
+
bucket: @bucket_name,
|
298
|
+
key: @object_key,
|
299
|
+
version_id: @id
|
300
|
+
)
|
301
|
+
resp = @client.head_object(options)
|
302
|
+
resp.data
|
303
|
+
end
|
304
|
+
|
305
|
+
# @!group Associations
|
306
|
+
|
307
|
+
# @return [Object]
|
308
|
+
def object
|
309
|
+
Object.new(
|
310
|
+
bucket_name: @bucket_name,
|
311
|
+
key: @object_key,
|
312
|
+
client: @client
|
313
|
+
)
|
314
|
+
end
|
315
|
+
|
316
|
+
# @deprecated
|
317
|
+
# @api private
|
318
|
+
def identifiers
|
319
|
+
{
|
320
|
+
bucket_name: @bucket_name,
|
321
|
+
object_key: @object_key,
|
322
|
+
id: @id
|
323
|
+
}
|
324
|
+
end
|
325
|
+
deprecated(:identifiers)
|
326
|
+
|
327
|
+
private
|
328
|
+
|
329
|
+
def extract_bucket_name(args, options)
|
330
|
+
value = args[0] || options.delete(:bucket_name)
|
331
|
+
case value
|
332
|
+
when String then value
|
333
|
+
when nil then raise ArgumentError, "missing required option :bucket_name"
|
334
|
+
else
|
335
|
+
msg = "expected :bucket_name to be a String, got #{value.class}"
|
336
|
+
raise ArgumentError, msg
|
109
337
|
end
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
338
|
+
end
|
339
|
+
|
340
|
+
def extract_object_key(args, options)
|
341
|
+
value = args[1] || options.delete(:object_key)
|
342
|
+
case value
|
343
|
+
when String then value
|
344
|
+
when nil then raise ArgumentError, "missing required option :object_key"
|
345
|
+
else
|
346
|
+
msg = "expected :object_key to be a String, got #{value.class}"
|
347
|
+
raise ArgumentError, msg
|
118
348
|
end
|
349
|
+
end
|
119
350
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
351
|
+
def extract_id(args, options)
|
352
|
+
value = args[2] || options.delete(:id)
|
353
|
+
case value
|
354
|
+
when String then value
|
355
|
+
when nil then raise ArgumentError, "missing required option :id"
|
356
|
+
else
|
357
|
+
msg = "expected :id to be a String, got #{value.class}"
|
358
|
+
raise ArgumentError, msg
|
125
359
|
end
|
360
|
+
end
|
361
|
+
|
362
|
+
class Collection < Aws::Resources::Collection
|
126
363
|
|
127
|
-
# @!group Actions
|
364
|
+
# @!group Batch Actions
|
128
365
|
|
129
366
|
# @example Request syntax with placeholder values
|
130
367
|
#
|
131
|
-
# object_version.
|
368
|
+
# object_version.batch_delete!({
|
132
369
|
# mfa: "MFA",
|
133
370
|
# request_payer: "requester", # accepts requester
|
134
371
|
# })
|
135
|
-
# @param
|
372
|
+
# @param options ({})
|
136
373
|
# @option options [String] :mfa
|
137
374
|
# The concatenation of the authentication device's serial number, a
|
138
375
|
# space, and the value that is displayed on your authentication device.
|
@@ -142,265 +379,26 @@ module Aws
|
|
142
379
|
# requests. Documentation on downloading objects from requester pays
|
143
380
|
# buckets can be found at
|
144
381
|
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
145
|
-
# @return [
|
146
|
-
def
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
#
|
158
|
-
# object_version.get({
|
159
|
-
# if_match: "IfMatch",
|
160
|
-
# if_modified_since: Time.now,
|
161
|
-
# if_none_match: "IfNoneMatch",
|
162
|
-
# if_unmodified_since: Time.now,
|
163
|
-
# range: "Range",
|
164
|
-
# response_cache_control: "ResponseCacheControl",
|
165
|
-
# response_content_disposition: "ResponseContentDisposition",
|
166
|
-
# response_content_encoding: "ResponseContentEncoding",
|
167
|
-
# response_content_language: "ResponseContentLanguage",
|
168
|
-
# response_content_type: "ResponseContentType",
|
169
|
-
# response_expires: Time.now,
|
170
|
-
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
171
|
-
# sse_customer_key: "SSECustomerKey",
|
172
|
-
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
173
|
-
# request_payer: "requester", # accepts requester
|
174
|
-
# part_number: 1,
|
175
|
-
# })
|
176
|
-
# @param [Hash] options ({})
|
177
|
-
# @option options [String] :if_match
|
178
|
-
# Return the object only if its entity tag (ETag) is the same as the one
|
179
|
-
# specified, otherwise return a 412 (precondition failed).
|
180
|
-
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
181
|
-
# Return the object only if it has been modified since the specified
|
182
|
-
# time, otherwise return a 304 (not modified).
|
183
|
-
# @option options [String] :if_none_match
|
184
|
-
# Return the object only if its entity tag (ETag) is different from the
|
185
|
-
# one specified, otherwise return a 304 (not modified).
|
186
|
-
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
187
|
-
# Return the object only if it has not been modified since the specified
|
188
|
-
# time, otherwise return a 412 (precondition failed).
|
189
|
-
# @option options [String] :range
|
190
|
-
# Downloads the specified range bytes of an object. For more information
|
191
|
-
# about the HTTP Range header, go to
|
192
|
-
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
|
193
|
-
# @option options [String] :response_cache_control
|
194
|
-
# Sets the Cache-Control header of the response.
|
195
|
-
# @option options [String] :response_content_disposition
|
196
|
-
# Sets the Content-Disposition header of the response
|
197
|
-
# @option options [String] :response_content_encoding
|
198
|
-
# Sets the Content-Encoding header of the response.
|
199
|
-
# @option options [String] :response_content_language
|
200
|
-
# Sets the Content-Language header of the response.
|
201
|
-
# @option options [String] :response_content_type
|
202
|
-
# Sets the Content-Type header of the response.
|
203
|
-
# @option options [Time,DateTime,Date,Integer,String] :response_expires
|
204
|
-
# Sets the Expires header of the response.
|
205
|
-
# @option options [String] :sse_customer_algorithm
|
206
|
-
# Specifies the algorithm to use to when encrypting the object (e.g.,
|
207
|
-
# AES256).
|
208
|
-
# @option options [String] :sse_customer_key
|
209
|
-
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
210
|
-
# encrypting data. This value is used to store the object and then it is
|
211
|
-
# discarded; Amazon does not store the encryption key. The key must be
|
212
|
-
# appropriate for use with the algorithm specified in the
|
213
|
-
# x-amz-server-side-encryption-customer-algorithm header.
|
214
|
-
# @option options [String] :sse_customer_key_md5
|
215
|
-
# Specifies the 128-bit MD5 digest of the encryption key according to
|
216
|
-
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
217
|
-
# ensure the encryption key was transmitted without error.
|
218
|
-
# @option options [String] :request_payer
|
219
|
-
# Confirms that the requester knows that she or he will be charged for
|
220
|
-
# the request. Bucket owners need not specify this parameter in their
|
221
|
-
# requests. Documentation on downloading objects from requester pays
|
222
|
-
# buckets can be found at
|
223
|
-
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
224
|
-
# @option options [Integer] :part_number
|
225
|
-
# Part number of the object being read. This is a positive integer
|
226
|
-
# between 1 and 10,000. Effectively performs a 'ranged' GET request
|
227
|
-
# for the part specified. Useful for downloading just a part of an
|
228
|
-
# object.
|
229
|
-
# @return [Types::GetObjectOutput]
|
230
|
-
def get(options = {})
|
231
|
-
options = options.merge(
|
232
|
-
bucket: @bucket_name,
|
233
|
-
key: @object_key,
|
234
|
-
version_id: @id
|
235
|
-
)
|
236
|
-
resp = @client.get_object(options)
|
237
|
-
resp.data
|
238
|
-
end
|
239
|
-
|
240
|
-
# @example Request syntax with placeholder values
|
241
|
-
#
|
242
|
-
# object_version.head({
|
243
|
-
# if_match: "IfMatch",
|
244
|
-
# if_modified_since: Time.now,
|
245
|
-
# if_none_match: "IfNoneMatch",
|
246
|
-
# if_unmodified_since: Time.now,
|
247
|
-
# range: "Range",
|
248
|
-
# sse_customer_algorithm: "SSECustomerAlgorithm",
|
249
|
-
# sse_customer_key: "SSECustomerKey",
|
250
|
-
# sse_customer_key_md5: "SSECustomerKeyMD5",
|
251
|
-
# request_payer: "requester", # accepts requester
|
252
|
-
# part_number: 1,
|
253
|
-
# })
|
254
|
-
# @param [Hash] options ({})
|
255
|
-
# @option options [String] :if_match
|
256
|
-
# Return the object only if its entity tag (ETag) is the same as the one
|
257
|
-
# specified, otherwise return a 412 (precondition failed).
|
258
|
-
# @option options [Time,DateTime,Date,Integer,String] :if_modified_since
|
259
|
-
# Return the object only if it has been modified since the specified
|
260
|
-
# time, otherwise return a 304 (not modified).
|
261
|
-
# @option options [String] :if_none_match
|
262
|
-
# Return the object only if its entity tag (ETag) is different from the
|
263
|
-
# one specified, otherwise return a 304 (not modified).
|
264
|
-
# @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
|
265
|
-
# Return the object only if it has not been modified since the specified
|
266
|
-
# time, otherwise return a 412 (precondition failed).
|
267
|
-
# @option options [String] :range
|
268
|
-
# Downloads the specified range bytes of an object. For more information
|
269
|
-
# about the HTTP Range header, go to
|
270
|
-
# http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
|
271
|
-
# @option options [String] :sse_customer_algorithm
|
272
|
-
# Specifies the algorithm to use to when encrypting the object (e.g.,
|
273
|
-
# AES256).
|
274
|
-
# @option options [String] :sse_customer_key
|
275
|
-
# Specifies the customer-provided encryption key for Amazon S3 to use in
|
276
|
-
# encrypting data. This value is used to store the object and then it is
|
277
|
-
# discarded; Amazon does not store the encryption key. The key must be
|
278
|
-
# appropriate for use with the algorithm specified in the
|
279
|
-
# x-amz-server-side-encryption-customer-algorithm header.
|
280
|
-
# @option options [String] :sse_customer_key_md5
|
281
|
-
# Specifies the 128-bit MD5 digest of the encryption key according to
|
282
|
-
# RFC 1321. Amazon S3 uses this header for a message integrity check to
|
283
|
-
# ensure the encryption key was transmitted without error.
|
284
|
-
# @option options [String] :request_payer
|
285
|
-
# Confirms that the requester knows that she or he will be charged for
|
286
|
-
# the request. Bucket owners need not specify this parameter in their
|
287
|
-
# requests. Documentation on downloading objects from requester pays
|
288
|
-
# buckets can be found at
|
289
|
-
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
290
|
-
# @option options [Integer] :part_number
|
291
|
-
# Part number of the object being read. This is a positive integer
|
292
|
-
# between 1 and 10,000. Effectively performs a 'ranged' HEAD request
|
293
|
-
# for the part specified. Useful querying about the size of the part and
|
294
|
-
# the number of parts in this object.
|
295
|
-
# @return [Types::HeadObjectOutput]
|
296
|
-
def head(options = {})
|
297
|
-
options = options.merge(
|
298
|
-
bucket: @bucket_name,
|
299
|
-
key: @object_key,
|
300
|
-
version_id: @id
|
301
|
-
)
|
302
|
-
resp = @client.head_object(options)
|
303
|
-
resp.data
|
304
|
-
end
|
305
|
-
|
306
|
-
# @!group Associations
|
307
|
-
|
308
|
-
# @return [Object]
|
309
|
-
def object
|
310
|
-
Object.new(
|
311
|
-
bucket_name: @bucket_name,
|
312
|
-
key: @object_key,
|
313
|
-
client: @client
|
314
|
-
)
|
315
|
-
end
|
316
|
-
|
317
|
-
# @deprecated
|
318
|
-
# @api private
|
319
|
-
def identifiers
|
320
|
-
{
|
321
|
-
bucket_name: @bucket_name,
|
322
|
-
object_key: @object_key,
|
323
|
-
id: @id
|
324
|
-
}
|
325
|
-
end
|
326
|
-
deprecated(:identifiers)
|
327
|
-
|
328
|
-
private
|
329
|
-
|
330
|
-
def extract_bucket_name(args, options)
|
331
|
-
value = args[0] || options.delete(:bucket_name)
|
332
|
-
case value
|
333
|
-
when String then value
|
334
|
-
when nil then raise ArgumentError, "missing required option :bucket_name"
|
335
|
-
else
|
336
|
-
msg = "expected :bucket_name to be a String, got #{value.class}"
|
337
|
-
raise ArgumentError, msg
|
338
|
-
end
|
339
|
-
end
|
340
|
-
|
341
|
-
def extract_object_key(args, options)
|
342
|
-
value = args[1] || options.delete(:object_key)
|
343
|
-
case value
|
344
|
-
when String then value
|
345
|
-
when nil then raise ArgumentError, "missing required option :object_key"
|
346
|
-
else
|
347
|
-
msg = "expected :object_key to be a String, got #{value.class}"
|
348
|
-
raise ArgumentError, msg
|
349
|
-
end
|
350
|
-
end
|
351
|
-
|
352
|
-
def extract_id(args, options)
|
353
|
-
value = args[2] || options.delete(:id)
|
354
|
-
case value
|
355
|
-
when String then value
|
356
|
-
when nil then raise ArgumentError, "missing required option :id"
|
357
|
-
else
|
358
|
-
msg = "expected :id to be a String, got #{value.class}"
|
359
|
-
raise ArgumentError, msg
|
360
|
-
end
|
361
|
-
end
|
362
|
-
|
363
|
-
class Collection < Aws::Resources::Collection
|
364
|
-
|
365
|
-
# @!group Batch Actions
|
366
|
-
|
367
|
-
# @example Request syntax with placeholder values
|
368
|
-
#
|
369
|
-
# object_version.batch_delete!({
|
370
|
-
# mfa: "MFA",
|
371
|
-
# request_payer: "requester", # accepts requester
|
372
|
-
# })
|
373
|
-
# @param options ({})
|
374
|
-
# @option options [String] :mfa
|
375
|
-
# The concatenation of the authentication device's serial number, a
|
376
|
-
# space, and the value that is displayed on your authentication device.
|
377
|
-
# @option options [String] :request_payer
|
378
|
-
# Confirms that the requester knows that she or he will be charged for
|
379
|
-
# the request. Bucket owners need not specify this parameter in their
|
380
|
-
# requests. Documentation on downloading objects from requester pays
|
381
|
-
# buckets can be found at
|
382
|
-
# http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
|
383
|
-
# @return [void]
|
384
|
-
def batch_delete!(options = {})
|
385
|
-
batch_enum.each do |batch|
|
386
|
-
params = Aws::Util.copy_hash(options)
|
387
|
-
params[:bucket] = batch[0].bucket_name
|
388
|
-
params[:delete] ||= {}
|
389
|
-
params[:delete][:objects] ||= []
|
390
|
-
batch.each do |item|
|
391
|
-
params[:delete][:objects] << {
|
392
|
-
key: item.object_key,
|
393
|
-
version_id: item.id
|
394
|
-
}
|
395
|
-
end
|
396
|
-
batch[0].client.delete_objects(params)
|
382
|
+
# @return [void]
|
383
|
+
def batch_delete!(options = {})
|
384
|
+
batch_enum.each do |batch|
|
385
|
+
params = Aws::Util.copy_hash(options)
|
386
|
+
params[:bucket] = batch[0].bucket_name
|
387
|
+
params[:delete] ||= {}
|
388
|
+
params[:delete][:objects] ||= []
|
389
|
+
batch.each do |item|
|
390
|
+
params[:delete][:objects] << {
|
391
|
+
key: item.object_key,
|
392
|
+
version_id: item.id
|
393
|
+
}
|
397
394
|
end
|
398
|
-
|
395
|
+
batch[0].client.delete_objects(params)
|
399
396
|
end
|
397
|
+
nil
|
398
|
+
end
|
400
399
|
|
401
|
-
|
400
|
+
# @!endgroup
|
402
401
|
|
403
|
-
end
|
404
402
|
end
|
405
403
|
end
|
406
404
|
end
|