class FakeAWS::S3::Operations::PutObject
Public Class Methods
new(root_directory, request)
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 7 def initialize(root_directory, request) @root_directory = root_directory @request = request end
Public Instance Methods
call()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 12 def call return no_such_bucket_response unless bucket_on_disk.exists? object_on_disk.write(@request.body.read, metadata) success_response end
Private Instance Methods
bucket_on_disk()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 45 def bucket_on_disk @bucket_on_disk ||= BucketOnDisk.new(@root_directory, @request.bucket) end
content_type_metadata()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 33 def content_type_metadata { "Content-Type" => @request.content_type } end
metadata()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 29 def metadata @metadata ||= [content_type_metadata, user_metadata].inject(:merge) end
no_such_bucket_response()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 25 def no_such_bucket_response Responses::Error.new("NoSuchBucket", "BucketName" => @request.bucket) end
object_on_disk()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 41 def object_on_disk @object_on_disk ||= ObjectOnDisk.new(bucket_on_disk, @request.key) end
success_response()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 21 def success_response Responses::Empty.new end
user_metadata()
click to toggle source
# File lib/fake_aws/s3/operations/put_object.rb, line 37 def user_metadata @request.http_headers.select {|key, _| key.start_with?("x-amz-meta-") } end