summaryrefslogtreecommitdiff
path: root/lib/server.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/server.rb')
-rw-r--r--lib/server.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/server.rb b/lib/server.rb
index 136ffdf..1d4706c 100644
--- a/lib/server.rb
+++ b/lib/server.rb
@@ -4,7 +4,7 @@ require 'rack'
require 'json'
class DataStorageServer
- MAX_BYTES=1024
+ MAX_BYTES=4096
def initialize(storage: {})
@storage = storage
@@ -38,14 +38,19 @@ class DataStorageServer
#
# Status: 201 Created
# {size, oid}
- # Blobs can have a max size of 1024 bytes.
+ # Blobs can have a max size of MAX_BYTES bytes.
# If a blob exceeds this size then the blob is truncated
# and the first 1024 bytes are stored.
def put(io)
data = io.read(MAX_BYTES)
- oid = Digest::SHA256.hexdigest(data)
- @storage[oid] = data
- ['201', {}, [JSON.generate({ size: data.size, oid: oid })]]
+
+ if io.eof?
+ oid = Digest::SHA256.hexdigest(data)
+ @storage[oid] = data
+ ['201', {}, [JSON.generate({ size: data.size, oid: oid })]]
+ else
+ ['400', {}, []]
+ end
end
# Delete an Object