photo upload

From IndieWeb
  • 2020-02-13 Tantek ร‡elik: Should this page be renamed to something like "photo publishing"? Or should it be rewritten to purely be about the act of uploading an image file? Or uploading/storage of image files? E.g. photo storage
    • ...

photo upload

Photo upload is the act of creating a post whose primary content is a photo, typically captured by a camera on the same device that is creating the post.

For UIs to create a photo post, see:

POSSE

It is possible to POSSE photo uploads via silo-specific APIs to the following:

  • Flickr
  • Twitter
  • Wikimedia Commons - the API is somewhat complex and undocumented, but for some images that meet the project scope and are licensed under free licenses (CC BY-SA, CC BY, CC0/PD or equivalent)
    • So long as images are not deleted, you are able to store images there indefinitely, hot link them and use Commons to retrieve scaled versions.

Manual POSSEing is possible to the following:

  • Facebook - due to posting APIs being dropped 2018-08-01.
  • Instagram - has never had official posting APIs

PuPuPu

The popular mobile photo site Instagram deliberately lacks an API for uploads[1]. However it does have an API for real-time notifications of uploads[2].

This presents the opportunity to build a PuPuPu system with Instagram as a publishing client:

  • Instagram
    • -> real-time notification to (and post creation on) your own site

Technically this would be Push-Push-Publishing, since the notifications from Instagram are done in real-time using the PuSH protocol.

Implementations

The OwnYourGram service enables you to use Instagram as a publishing client for posting photos to your own site.

HTML5 photo uploads

HTML5 extends the input element to permit pages to declaratively attempt photo uploads with:

  • <input type="file" accept="image/*">

For documentation on how this works in browsers see:

Mobile upload

Until in-browser approaches mature, it may be necessary to use native apps (either tied to a service and then PESOS, or a wrapper app around personal blogging web apps to provide camera functionality).

HTML5 Mobile browser upload

Other approaches

  • Email as possible approach? Most smart phones have an email client, and/or have "email this photo" support built-into their native/default camera applications. If you could set-up a custom email address (security through obscurity) on your own domain for receiving photo uploads, you could use that to "upload" photos, and then have your indieweb site POSSE out to the above-mentioned silos.
  • OwnCloud has an Android client which can upload new photos taken on the camera to your own installation,
  • Android BotSync will watch a subdirectory on your phone and use the scp protocol to transfer new files in that directory to a server, but appears to have some issues with larger files (ie: video).
  • The Android app "FolderSync" appears to be a more full-featured alternative to BotSync.
  • With such sync approaches it makes sense for the UI to offer the user the option to pick an image from the recently uploaded ones
  • HTTP uploads (and by extension everything based on them, e.g. Micropub, normal HTML upload forms) by default do not support uploading files bit-by-bit or resuming interrupted uploads, which is a problem esp. for mobile connections. A common solution seems to be to allow multiple requests with offsets to write parts of the file, and server implementations that also write data from aborted requests. (Examples: dropbox API, tus.io protocol (attempt to standardize such a protocol))

Desktop upload

Some browsers support uploading images from a laptop/monitor camera:

See also

See Also