Sha256: 0cc327a819b5487694c6836526e58a85867790020e21a18750fba67c76bdad1f
Contents?: true
Size: 1.9 KB
Versions: 37
Compression:
Stored size: 1.9 KB
Contents
module Fog module AWS class Storage class Real # Restore an object from Glacier to its original S3 path # # @param bucket_name [String] Name of bucket containing object # @param object_name [String] Name of object to restore # @option days [Integer] Number of days to restore object for. Defaults to 100000 (a very long time) # # @return [Excon::Response] response: # * status [Integer] 200 (OK) Object is previously restored # * status [Integer] 202 (Accepted) Object is not previously restored # * status [Integer] 409 (Conflict) Restore is already in progress # # @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPOSTrestore.html # def post_object_restore(bucket_name, object_name, days = 100000) raise ArgumentError.new('bucket_name is required') unless bucket_name raise ArgumentError.new('object_name is required') unless object_name data = '<RestoreRequest xmlns="http://s3.amazonaws.com/doc/2006-3-01"><Days>' + days.to_s + '</Days></RestoreRequest>' headers = {} headers['Content-MD5'] = Base64.encode64(OpenSSL::Digest::MD5.digest(data)).strip headers['Content-Type'] = 'application/xml' headers['Date'] = Fog::Time.now.to_date_header request({ :headers => headers, :bucket_name => bucket_name, :expects => [200, 202, 409], :body => data, :method => 'POST', :query => {'restore' => nil}, :object_name => object_name }) end end class Mock # :nodoc:all def post_object_restore(bucket_name, object_name, days = 100000) response = get_object(bucket_name, object_name) response.body = nil response end end end end end
Version data entries
37 entries across 37 versions & 1 rubygems