Give up an upload
const url = 'https://api.sloose.com/orgs/org_9f3c/imports/imp_4d1a/files/fil_7c2e/release';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"ifDueAt":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.sloose.com/orgs/org_9f3c/imports/imp_4d1a/files/fil_7c2e/release \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "ifDueAt": "example" }'Releases a reservation the browser will not finish (cancelled, or given up). The row is claimed for deletion at once, a multipart upload is let go in storage, and the sweep deletes whatever landed under the file’s key once the URLs handed out have expired, as a refused commit’s is; the space is free then, and counts until then. Only an upload in progress can be released; a release repeated answers the same. A stored file is removed with DELETE.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The organisation id the session was issued for. A token for one organisation can never read another.
Example
org_9f3cThe organisation id the session was issued for. A token for one organisation can never read another.
The import id.
Example
imp_4d1aThe import id.
The file id.
Example
fil_7c2eThe file id.
Request Body
Section titled “Request Body”object
The deadline the caller saw when it listed the reservation (dueAt). Given, the release happens only if it is still the deadline: every link signed for the upload moves it, so a reservation another tab is sending is not released by a cleanup that read it as stale (FILE_RENEWED).
Examplegenerated
{ "ifDueAt": "example"}Responses
Section titled “Responses”The reservation, now released.
object
The stored size in bytes, read from storage at commit; null until then.
Read from the file’s first bytes by the server, never from its name or the browser’s claim.
The content’s SHA-256 (base64), as the browser said it. See sha256Verified.
True where storage checked it (a single signed PUT); false where it is the browser’s claim (a multipart file, whose parts are each verified by their MD5).
When the sweep may take the file. For an upload in progress it moves on with every link signed: one that has passed is an upload nobody is sending.
When the file was reserved (ISO 8601, UTC): a reservation never finished is told by how old it is.
Example
{ "state": "reserved"}No bearer, or one that no longer resolves: a session that is unknown or expired (code: AUTH_REQUIRED), or an API token that was revoked or expired (TOKEN_REVOKED, TOKEN_EXPIRED), whose organisation is gone (ORG_NOT_FOUND) or whose member or user row is (MEMBERSHIP_GONE).
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The role or session. Like every route behind a session: a session signed in but in no organisation is refused code: NO_ORG, a banned person code: BANNED, and a closed organisation code: ORG_CLOSED.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}No such import or file.
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The file is stored, not an upload in progress (FILE_NOT_RESERVED), or its deadline has moved since the caller saw it (FILE_RENEWED).
The error envelope every non-2xx answer uses.
object
Human-readable explanation.
Machine-readable reason. Absent on a few legacy 400s.
Examplegenerated
{ "error": "example", "code": "example"}The restore switch is on (code: MAINTENANCE): every route but /health and /robots.txt is refused before anything is read, except the operator’s own POST /staff/people/{id}/delete with the ADMIN_TOKEN. Sloose is down for maintenance. Please try again in a few minutes.
object
Example
{ "code": "MAINTENANCE"}Headers
Section titled “Headers”Seconds until asking again is worth it (300 while the switch is on).