Skip to content

Loosen requirement for object in media upload #579

Description

@evanp

Not entirely related to the point @reiver is trying to make, so apologies for piggybacking on this ticket.

If changes are still up for consideration, I'd like to propose a slight simplification to the MediaUpload extension as it's presented in the above SocialCG link.

Instead of pushing both binary content and the "shell" ActivityPub Create activity in which to slot the uploaded media, the server could handle strictly the media upload, and return an incomplete ActivityPub Object (a "shell" as it was called) containing the properties that have been inferred from the uploaded media:

  • Type: Audio, Video, Image, etc.
  • MediaType: audio/..., video/..., image/..., etc.
  • URL: containing the direct link to the uploaded media.
  • AttributedTo: inferred from the authorization the upload was effected under, if it refers to a valid user
  • etc

Then the client the user used for the upload can append the additional elements the user specifies (Summary, Name, ID, etc) and use a Create activity to actually create the ActivityPub object.

Additionally this allows for servers that operate fancier upload mechanisms (eg, creating different web-optimized versions for the data, or, as @reiver asked, a server that can support partial uploads) but still represent them as valid ActivityPub objects.

To me, this is a better API as it separates the concerns between the actual media upload and the ActivityPub processing, and in my case, the reason why I like this architecture better is that it allows for the mediaUpload to be a separate micro-service, independent of the ActivityPub server.

Originally posted by @mariusor in #578

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions