Based on content available in ActivityPub specification before https://github.com/w3c/activitypub/commit/fae6a56a8dcba9de69374aa7ae0bef565217e5c7
Servers MAY implement this feature. To accomplish this, a client must submit a
multipart/form-data request to the
uploadMedia user's endpoint on their ActivityStreams actor object.
A client should expect that it must be properly authenticated in order to be able to upload media.
The submitted form data should contain two parts / fields:
- The file being uploaded
- An optional skeleton for an ActivityStreams object to be finalized by the server
Assuming that the server accepts the request and that the user was appropriately authorized to upload media, servers MUST respond with a
201 Created if the submitted media is immediately available or a
202 Accepted if the server is still processing the submitted media.
The response MUST contain a
Location header pointing to the new or to be created object's
OR if considered a temporary transient object by the implementation, a copy of the object into the response body.
The server, having done any appropriate processing on the received
file and putting it in place, transforms the
In particular, servers SHOULD include the uploaded and/or processed file paths in the object's
(Examples to be included; implementation-side documentation example: https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3056/diffs)