Skip to content

Commit

Permalink
Merge pull request #28 from taylorfinnell/make-file-uploader-return-s…
Browse files Browse the repository at this point in the history
…ame-obj

FileUploader#upload now returns true or raises an error. Closes #24
  • Loading branch information
taylorfinnell committed Jan 7, 2018
2 parents 1ecd844 + c7100fe commit 473158e
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
8 changes: 4 additions & 4 deletions spec/awscr-s3/file_uploader_spec.cr
Expand Up @@ -12,7 +12,7 @@ module Awscr::S3
uploader = FileUploader.new(client)
small_io = IO::Memory.new("document")

uploader.upload("bucket", "object", small_io)
uploader.upload("bucket", "object", small_io).should be_true
end

it "passes additional headers, when provided" do
Expand All @@ -24,7 +24,7 @@ module Awscr::S3
uploader = FileUploader.new(client)
small_io = IO::Memory.new("document")

uploader.upload("bucket", "object", small_io, {"x-amz-meta-name" => "myobject"})
uploader.upload("bucket", "object", small_io, {"x-amz-meta-name" => "myobject"}).should be_true
end
end

Expand Down Expand Up @@ -54,7 +54,7 @@ module Awscr::S3
uploader = FileUploader.new(client)
big_io = IO::Memory.new("a" * 5_500_000)

uploader.upload("bucket", "object", big_io)
uploader.upload("bucket", "object", big_io).should be_true
end

it "passes additional headers, when provided" do
Expand Down Expand Up @@ -82,7 +82,7 @@ module Awscr::S3
uploader = FileUploader.new(client)
big_io = IO::Memory.new("a" * 5_500_000)

uploader.upload("bucket", "object", big_io, {"x-amz-meta-name" => "myobject"})
uploader.upload("bucket", "object", big_io, {"x-amz-meta-name" => "myobject"}).should be_true
end
end
end
Expand Down
6 changes: 4 additions & 2 deletions src/awscr-s3/file_uploader.cr
Expand Up @@ -8,11 +8,12 @@ module Awscr::S3
def initialize(@client : Client)
end

# Upload a file to a bucket
# Upload a file to a bucket. Returns true if successful, otherwise an
# `Http::ServerError` is thrown.
#
# ```
# uploader = FileUpload.new(client)
# uploader.upload("bucket1", "obj", "DATA!")
# uploader.upload("bucket1", "obj", IO::Memory.new("DATA!"))
# ```
def upload(bucket : String, object : String, io : IO, headers : Hash(String, String) = Hash(String, String).new)
if io.size < UPLOAD_THRESHOLD
Expand All @@ -21,6 +22,7 @@ module Awscr::S3
uploader = MultipartFileUploader.new(@client)
uploader.upload(bucket, object, io, headers)
end
true
end
end
end

0 comments on commit 473158e

Please sign in to comment.