class Fog::AWS::Glacier::Archive
Attributes
multipart_chunk_size[RW]
Public Instance Methods
destroy()
click to toggle source
# File lib/fog/aws/models/glacier/archive.rb, line 27 def destroy requires :id service.delete_archive(vault.id,id) end
save()
click to toggle source
# File lib/fog/aws/models/glacier/archive.rb, line 15 def save requires :body, :vault if multipart_chunk_size && body.respond_to?(:read) self.id = multipart_save else data = service.create_archive(vault.id, body, 'description' => description) self.id = data.headers['x-amz-archive-id'] end true end
vault()
click to toggle source
# File lib/fog/aws/models/glacier/archive.rb, line 11 def vault @vault end
Private Instance Methods
multipart_save()
click to toggle source
# File lib/fog/aws/models/glacier/archive.rb, line 38 def multipart_save # Initiate the upload res = service.initiate_multipart_upload vault.id, multipart_chunk_size, 'description' => description upload_id = res.headers["x-amz-multipart-upload-id"] hash = Fog::AWS::Glacier::TreeHash.new if body.respond_to?(:rewind) body.rewind rescue nil end offset = 0 while (chunk = body.read(multipart_chunk_size)) do part_hash = hash.add_part(chunk) part_upload = service.upload_part(vault.id, upload_id, chunk, offset, part_hash ) offset += chunk.bytesize end rescue # Abort the upload & reraise service.abort_multipart_upload(vault.id, upload_id) if upload_id raise else # Complete the upload service.complete_multipart_upload(vault.id, upload_id, offset, hash.hexdigest).headers['x-amz-archive-id'] end
vault=(new_vault)
click to toggle source
# File lib/fog/aws/models/glacier/archive.rb, line 34 def vault=(new_vault) @vault = new_vault end