Skip to main content

๐Ÿ“ Upload

Upload a single photoโ€‹

Click on a local photo and click on the upload button in the top left corner.

Prerequisitesโ€‹

Two things have to be in place before the mobile app can upload, and both are set up by an admin:

If the Scan Directory is missing or does not exist on the server, the upload is rejected. The mobile app currently does not surface this error: the photo simply stays unsynced. So if uploads never seem to complete, check with your admin that your Scan Directory is set correctly.

What kinds of files are supported?โ€‹

We accept all files that have a mime type of image.

How does it work?โ€‹

The upload process works in the following way:

  • Check if file is on the server by comparing the hash md5 + user_id
  • If it is, don't upload it
  • If it isn't, upload it
  • We upload files in 1MB chunks
  • When a file finishes uploading, the server saves it under scan folder + /uploads/web and queues a background job for that one photo (thumbnails, metadata, captions, geolocation, album date and face detection) โ€” no separate folder scan is triggered
  • Mark the photo as synced

Where are the files saved?โ€‹

  • If all the chunks are uploaded, we combine them into a single file and put them in your scan folder + /uploads/web

Backup all photosโ€‹

You can backup all photos by clicking on the Sync all images button in the settings.

Delete synced photosโ€‹

You can delete all backed up photos by clicking on the Remove backed up images button in the settings. It works by checking if the photo is synced and if it is, it deletes it from your phone.

Activate / Deactivate the upload featureโ€‹

You can activate / deactivate by navigating as an admin to the admin area and clicking on the Allow uploads switch. This switch is the authoritative setting. The ALLOW_UPLOAD environment variable (set through allowUpload in librephotos.env for the Docker deployment) only supplies the initial default: once a value has been saved to the database โ€” by toggling the switch, or by the first-time setup wizard โ€” the stored setting wins and the environment variable is ignored. See Environment variables.