diff options
Diffstat (limited to 'lib/server.rb')
| -rw-r--r-- | lib/server.rb | 15 |
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 |
