API: Allegati
Gli allegati usano un caricamento in tre fasi, content-addressed: registri il file con il suo checksum SHA-256, carichi i byte su un URL presigned e poi confermi. Se lo spazio di lavoro contiene già un contenuto identico, la fase di caricamento viene saltata del tutto.
1. Registrare il caricamento
Sezione intitolata “1. Registrare il caricamento”POST /api/workspaces/{workspaceId}/tasks/{taskId}/attachments{ "checksum": "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08", "fileName": "color-sample.jpg", "mediaType": "image/jpeg", "sizeBytes": 182734}checksum è l’esadecimale SHA-256 in minuscolo del contenuto del file.
Restituisce 201:
{ "id": "019f…", "uploadUrl": "https://…storage…?X-Amz-Signature=…"}uploadUrlènullquando lo spazio di lavoro contiene già questo contenuto — l’allegato è completo, salta i passaggi 2 e 3.- Errori:
409se questo file è già allegato a questa attività,413se il limite di archiviazione dello spazio di lavoro verrebbe superato.
2. Caricare i byte
Sezione intitolata “2. Caricare i byte”Fai un PUT del file grezzo su uploadUrl con lo stesso Content-Type che
hai registrato:
curl -X PUT --data-binary @color-sample.jpg \ -H "Content-Type: image/jpeg" "$UPLOAD_URL"L’URL è presigned e di breve durata; qui non viene inviato alcun token Todomino.
3. Completare
Sezione intitolata “3. Completare”POST /api/workspaces/{workspaceId}/tasks/{taskId}/attachments/{attachmentId}/completeRestituisce 200 dopo che il server ha verificato la dimensione dell’oggetto
archiviato. 400 se il caricamento non è mai arrivato.
Download
Sezione intitolata “Download”GET /api/workspaces/{workspaceId}/tasks/{taskId}/attachments/{attachmentId}/downloadRisponde 302 Found con un URL presigned di breve durata nell’header
Location. Segui il redirect senza inoltrare il tuo header
Authorization (la maggior parte dei client HTTP lo fa correttamente per
impostazione predefinita).
Eliminare
Sezione intitolata “Eliminare”DELETE /api/workspaces/{workspaceId}/tasks/{taskId}/attachments/{attachmentId}Restituisce 204. Rimuove l’allegato dall’attività; il file archiviato viene
eliminato solo quando nessun’altra attività fa riferimento allo stesso
contenuto.
