remove API, it's not really intended to be a public API anyway
This commit is contained in:
parent
eb53030043
commit
1e1be9e7fd
55
API.md
55
API.md
|
@ -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.
|
|
Loading…
Reference in a new issue