diff options
| author | mo khan <mo.khan@gmail.com> | 2020-11-21 15:35:17 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-11-21 15:35:17 -0700 |
| commit | 7ebbed0ac1ba5dd8bcbcc2bbf26f0d4eba66f7b0 (patch) | |
| tree | db71e3bf795b2b0ecb09f4e1e3e49d8382df1679 | |
| parent | b70d954d0ee2ec4b2daccf1c15ed731512cc26ed (diff) | |
docs: add doc for PUT and DELETE actions
| -rw-r--r-- | server-rack.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/server-rack.rb b/server-rack.rb index 9c768e5..d68d867 100644 --- a/server-rack.rb +++ b/server-rack.rb @@ -1,13 +1,14 @@ #!/usr/bin/env ruby # Usage: # -# $ ruby rack-server.rb +# $ ./script/server require 'digest/sha1' require 'rack' require 'json' class DataStorageServer MAX_BYTES=1024 + # You may initialize any variables you want to use across requests here def initialize @storage = {} @@ -30,6 +31,20 @@ class DataStorageServer end end + # Upload an Object + # + # Request + # PUT /data/{repository} + # + # my data + # + # Response + # + # Status: 201 Created + # {size, oid} + # Blobs can have a max size of 1024 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::SHA1.hexdigest(data) @@ -37,6 +52,16 @@ class DataStorageServer ['201', {}, [JSON.generate({ size: data.size, oid: oid })]] end + # Delete an Object + # + # Request + # DELETE /data/{repository}/{oid} + # + # Response + # + # Status: 200 OK + # If the object identifer is unknown + # then a 404 status code is returned. def destroy(path) oid = id_from(path) if @storage.key?(oid) |
