44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/fog/google/requests/storage/copy_object.rb', line 44
def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
response = Excon::Response.new
source_bucket = self.data[:buckets][source_bucket_name]
source_object = source_bucket && source_bucket[:objects][source_object_name]
target_bucket = self.data[:buckets][target_bucket_name]
if source_object && target_bucket
response.status = 200
target_object = source_object.dup
target_object.merge!({
'Name' => target_object_name
})
target_bucket[:objects][target_object_name] = target_object
response.body = {
'ETag' => target_object['ETag'],
'LastModified' => Time.parse(target_object['Last-Modified'])
}
else
response.status = 404
raise(Excon::Errors.status_error({:expects => 200}, response))
end
response
end
|