Post apitransfers complete
Finalize an upload transfer.
Optional request body fields control the metadata-extraction behavior:
extracted_metadata(object) — pre-extracted metadata from the staged-upload preview. When provided, persists this verbatim and suppresses the post-commit auto-extraction hook.skip_extraction(bool) — whentrue, suppresses auto-extraction and leaves metadata fields empty. The user explicitly opted out.
When neither field is set, behavior is unchanged: the auto-extraction completion hook fires after commit. This preserves the contract for callers (e.g. the electron app) that pre-date the staging UX.
Authorizations
Path Parameters
Response
Read-only serializer for Transfer rows.
Includes denormalized labels for the tracker UI so the client can render
one row per transfer without extra round-trips. The ACL trade-off is
explicit: the initiator keeps visibility into project_name /
repository_name / asset_content_title even if the underlying grant
is later revoked, because TransferListCreateView already scopes the
queryset to initiated_by=request.user. A per-row ACL re-check would be
costly and provides no real defense (the initiator had access at
initiation time). project_* and repository_* fields are nullable —
Asset.owner_project can be null for personal assets, and
AssetContent.allocation is SET_NULL — clients MUST handle null.
upload- Uploaddownload- Download
upload, download pending- Pendingin_progress- In Progresscompleted- Completedfailed- Failedexpired- Expired
pending, in_progress, completed, failed, expired user- Usersystem- System
user, system