diff --git a/API.md b/API.md deleted file mode 100644 index 898c392..0000000 --- a/API.md +++ /dev/null @@ -1,55 +0,0 @@ -# transbeam websocket api - -- After opening the connection, the client sends an upload manifest to - the server. This is a JSON object containing the following keys: - - `files`: a list of metadata objects for all the files to be - uploaded, in the exact order they will be sent. This list must - contain at least 1 file and at most 256 files. Each file metadata - object has the following keys, all required: - - `name`: The name of the file. This will be sanitised on the - server side, but the sanitisation library isn't especially - restrictive; most Unicode code points will be allowed through - as-is. - - `size`: The exact size of the file, in bytes. - - `modtime`: The modification time of the file, as milliseconds - since the Unix epoch. - - `lifetime`: an integer number of days the files should be kept - for. - - `password`: the uploader password. - -- Once the server receives the metadata, it will respond with a - JSON-encoded object containing at least the field `type`, and - possibly other fields as well. The types of message, and their - associated extra fields if any, are as follows: - - `ready`: The server will accept the upload and is ready to receive - data. - - `code`: A code string that can be used to download the files, - starting now. - - `too_big`: The upload is rejected because the total size of the - files is bigger than the server is willing to accept. - - `max_size`: The maximum total upload size the server will - accept. This is subject to change if the admin changes the - config, or if the server's storage space is filling up. - - `too_long`: The upload is rejected because the requested lifetime - is longer than the server will allow. - - `max_days`: The maximum number of days the client can request - files be kept for. - - `incorrect_password`: The password was incorrect. - - `error`: A miscellaneous error has occurred. - - `details`: A string with more information about the error. - - If the message type is anything other than `ready`, the connection - will be closed by the server. - -- If the server is ready to receive files, the client begins sending - chunks of data from the files, as raw binary blobs. The client must - transmit each file's data in order from start to finish, and must - transmit the files in the same order they were listed in the - metadata. The size of the chunks isn't currently specified, and - it's fine for a chunk to span the end of one file and the start of - the next. After sending each chunk (that is, each complete - websocket message), the client must wait for the server to - acknowledge the chunk by sending back the string "ack", and then - send the next chunk if there is one. Once all chunks have been sent - and acknowledged, or once the server has sent a message other than - "ack" to indicate an error, the connection will be closed.