@@ -7,6 +7,7 @@ class Real
7
7
# @param bucket_name [String] Name of bucket containing object
8
8
# @param object_name [String] Name of object to restore
9
9
# @option days [Integer] Number of days to restore object for. Defaults to 100000 (a very long time)
10
+ # @option tier [String] Glacier retrieval tier. Can be 'Standard', 'Bulk', or 'Expedited'
10
11
#
11
12
# @return [Excon::Response] response:
12
13
# * status [Integer] 200 (OK) Object is previously restored
@@ -15,11 +16,16 @@ class Real
15
16
#
16
17
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html
17
18
#
18
- def post_object_restore ( bucket_name , object_name , days = 100000 )
19
+ def post_object_restore ( bucket_name , object_name , days = 100000 , tier = nil )
19
20
raise ArgumentError . new ( 'bucket_name is required' ) unless bucket_name
20
21
raise ArgumentError . new ( 'object_name is required' ) unless object_name
21
22
22
- data = '<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-3-01"><Days>' + days . to_s + '</Days></RestoreRequest>'
23
+ data = '<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-03-01/">'
24
+ data += '<Days>' + days . to_s + '</Days>'
25
+ if tier
26
+ data += '<GlacierJobParameters><Tier>' + tier + '</Tier></GlacierJobParameters>'
27
+ end
28
+ data += '</RestoreRequest>'
23
29
24
30
headers = { }
25
31
headers [ 'Content-MD5' ] = Base64 . encode64 ( OpenSSL ::Digest ::MD5 . digest ( data ) ) . strip
@@ -39,7 +45,7 @@ def post_object_restore(bucket_name, object_name, days = 100000)
39
45
end
40
46
41
47
class Mock # :nodoc:all
42
- def post_object_restore ( bucket_name , object_name , days = 100000 )
48
+ def post_object_restore ( bucket_name , object_name , days = 100000 , tier = nil )
43
49
response = get_object ( bucket_name , object_name )
44
50
response . body = nil
45
51
response
0 commit comments