Applies bytes at the given offset.
Every chunk but the last must be a whole part
part_size from the POST is a floor, not a suggestion: a chunk that is
not the last and carries fewer bytes is refused with 400. The object
stores this streams to will not take a part below their own minimum, five
mebibytes on S3, so a short chunk cannot be written anywhere and the offset
does not move. A client that kept sending one would loop for ever.
The last chunk is exempt, because there is nothing after it to make it whole.
A client that sends declared_bytes in one request never meets this at all.
Errors
400 when a chunk that is not the last is shorter than part_size, 409
when the offset does not match, 404 when there is no such session, 415
when the content type is not the one the specification names.
tessera_session<token>Set by POST /auth/login. A browser sends it automatically; it is HttpOnly, so page scripts cannot read or set it.
id*stringThe session
The next bytes
application/offset+octet-stream- body
[index: integer]?integerint320 <= valueThat was the last of it
application/json- response
A share as the API describes it. Never carries the content.
code*stringThe retrieval code, as a person reads it.
copy_count*integerHow many times a client reported it being copied.
int320 <= valuecreated_at*stringWhen it was created, RFC 3339.
disabled*booleanWhether it has been switched off, by an operator or because the scanner
found a threat. A disabled share answers 404 to everyone else.
encryption?|link or password for an end-to-end encrypted share, null for one
the server can read.
expires_at?|When it stops being served, RFC 3339, or null to live until deleted.
files*array<>Every file this share holds. Empty for text and for a locked share.
has_password*booleanWhether a password must be presented to retrieve it.
id*stringStable identifier.
key_salt?|The salt a password-derived key was stretched with, for password.
kind*stringtext, file or link.
language?|Syntax-highlighting hint.
last_accessed_at?|When it was last retrieved, RFC 3339.
Answers the question people ask of their own share: has it been picked up yet?
management_token?|Token that lets an anonymous uploader delete this share.
Shown once, at creation, and only for an anonymous upload. Only its digest is stored. Without it, a mistaken anonymous upload could never be taken back.
path*stringWhere the share lives, relative to this instance's origin.
Relative by design. The server does not know what host it is reached through, and guessing wrong behind a reverse proxy produces broken links. The caller already knows the origin it called.
scan_detail?|The threat's name for infected; encrypted or too_large for
skipped.
scan_state?|The malware scanner's verdict, the most significant across its files:
pending, clean, infected, skipped or deferred. null when it
was never sent to a scanner. See docs/scanning.md.
scanning*booleanWhether it is waiting for the malware scanner. Until it is done,
downloads answer 423 with Retry-After.
sealed_details?|The title and a note's language, sealed, on an encrypted share.
size_bytes*integerSize of the content in bytes.
int640 <= valuetitle?|Display name.
use_count*integerHow many times it has been retrieved.
Counted by the server on the transfer path, so this is the number to trust. The two below are what a client reported.
int320 <= valueuses_remaining?|How many retrievals remain, or null for unlimited.
int320 <= valueview_count*integerHow many times a client reported showing it.
int320 <= valuecurl -X PATCH 'https://example.com/api/v1/uploads/string' \ -H 'Content-Type: application/offset+octet-stream' \ -d '<0>0</0>'{ "code": "string", "copy_count": 0, "created_at": "string", "disabled": true, "encryption": "string", "expires_at": "string", "files": [ { "filename": "string", "position": 0, "sealed_name": "string", "size_bytes": 0 } ], "has_password": true, "id": "string", "key_salt": "string", "kind": "string", "language": "string", "last_accessed_at": "string", "management_token": "string", "path": "string", "scan_detail": "string", "scan_state": "string", "scanning": true, "sealed_details": "string", "size_bytes": 0, "title": "string", "use_count": 0, "uses_remaining": 0, "view_count": 0}