# Uploading files

**You'll need:** a role that includes uploading: `Media Uploader`, `Media Editor` or
`Administrator`.

**Media → Upload**, or drag files anywhere onto the library.

## From your computer

Drag and drop into the upload area, or click it to browse. You can drop a folder's
worth at once; the screen shows a per-file progress list with a running count of
completed, uploading and failed.

Supported formats are JPEG, PNG, GIF, WebP and AVIF for images, MP4, MOV and WebM for
video, and MP3, WAV, M4A, OGG, AAC and FLAC for audio. One batch holds up to 300 files.

Uploads go **straight from your browser to storage** rather than through the
application, which is why a large batch does not slow the rest of the app down and why
a flaky connection affects only the file it was on.

## From Dropbox or Google Drive

Under the drop area, **or import from** offers Dropbox and Google Drive. Connect the
account once, pick files or whole folders, and they transfer directly. You do not
download them to your machine first.

Importing a folder brings in the image and video files it contains and ignores the rest.

## After the upload

Files appear in the library immediately, marked as processing, and the AI analysis
follows. Nothing is blocked while it runs: you can organize, album and share a file
before its analysis lands. See [the media library](/guide/media/overview) for what the
analysis produces.

Processing usually takes a few minutes. On a large batch or a busy queue it can take
longer; the file's **Activity** tab shows where it is.

## Tag a batch on upload

If everything you are uploading belongs together (one shoot, one event, one campaign),
tag it on the way in rather than afterward. The upload screen lets you set tags and an
album that apply to the whole batch, which saves tagging each file individually.

## When an upload fails

Failures are reported per file with a reason, and the batch offers **Retry failed**
rather than making you start over. The common ones:

| Message | What it usually is |
|---|---|
| **Network error. The request never reached storage** | A VPN, ad blocker or corporate proxy between you and storage. Try another network before anything else. |
| **Upload timed out** | A slow connection and a large file. Retry, or upload in smaller batches. |
| **Storage rejected the upload. The upload link may have expired** | The page was open a long time before the upload started. Reload and try again. |
| **File is too large** | Over the per-file size limit. Export a smaller version. |
| **File type not supported** | Not one of the formats above. |
| **Uploaded, but processing failed** | The file is in. Only the analysis failed. It will usually appear shortly; if not, run analysis from its Activity tab. |

**Copy details** on a failed upload produces a report worth sending to support. It is
more useful than a screenshot.

## Collect files from outside the workspace

A photographer does not need an account. An **upload link** is a public URL that lets an
external contributor drop files straight into your library, with tags and an album
applied automatically to everything that arrives through it.

**Media → Share Links → Share as upload link.** See [share
links](/guide/media/share-links).

## Replace a file instead of adding one

If you are uploading a corrected version of something already in the library, open the
existing file and add the new one as a **version** instead. The file keeps its ID, its
albums, its tags and its place in every design that uses it, and the previous version
stays recoverable.

Uploading a correction as a separate file is how libraries end up with four nearly
identical images and no way to tell which is current. See
[duplicates](/guide/media/duplicates).
