Media storage
For Admins

Media storage

Where photos and files from conversations are kept, for how long, how to move them to S3, free up space and compress images.

Everything here lives in “Settings → Project & access → Media Storage”. The project owner and admins can change the settings and start moves, clean-ups and compression.

Where files are kept

  • Local storage — the SupportHub server's disk. Nothing to set up.
  • S3 storage — your bucket in AWS S3 or any S3-compatible storage (Hetzner Object Storage, Cloudflare R2, MinIO and others). You need the endpoint, bucket, region, access key and secret key. The secret key is stored encrypted and never shown again; you don't have to re-enter it to change the other fields.

The selected storage applies to new files. Files uploaded earlier stay where they landed until you move them (see below). “Check connection” writes a small test file to the bucket, reads it back and deletes it, so you know the access and permissions work.

The bucket can be private: a file opens through its SupportHub link, which redirects to a signed S3 link valid for an hour. For the “Download” button on phones to save the file rather than open it, allow CORS GET requests from any origin on the bucket.

If files are still in the bucket after you switch back to local storage, the S3 access is kept: those files keep opening and can be moved back. Changing the bucket doesn't move files already in the old one — move them before you change it.

Retention

“Retention (days)” is how many days after upload a file is deleted from local storage (90 by default, 0 keeps files forever). A file gets its deletion date when it's uploaded, so a new period applies to files uploaded after you save it. The cleanup runs nightly at 03:00 UTC (see Background tasks). Files in S3 aren't affected.

Attachments of knowledge base articles and templates are never deleted by retention. A file used in several places (say, a template image sent many times) is deleted only once all of them have expired.

Reset the countdown

“Reset the countdown” restarts the retention period from today for every file in local storage: with 90 days, none of them is deleted sooner than 90 days from now. Upload dates don't change, and no file gets an earlier deletion date than it had. With retention 0 the deletion dates are removed. Next to the button you see when the countdown was last reset and when the next file is due for deletion.

Want to keep files longer? Raise the period, save, then reset the countdown — the new period then applies to files already uploaded too. It also buys time to move everything to S3.

Moving files

“Moving files” shows how many files and megabytes sit in each storage, and moves them into the one selected now.

  1. Select “S3 storage”, enter the access details, check the connection and save. From now on new files go to S3.
  2. Click “Move to S3”. The confirmation shows how many files and megabytes will move.
  3. The move runs in the background: the page shows its progress and lets you stop it. You can close the page.

Before starting, SupportHub checks both storages by writing, reading back and deleting a test file. If the bucket isn't reachable, the move doesn't start and the page shows why.

What happens to each file

  • The file is uploaded to the bucket and verified: size and MD5 checksum must match.
  • Only then is the file's record switched to S3 and the local copy deleted. If another project still uses the file, the copy on disk stays.
  • Links don't change: files in conversations, knowledge base articles, templates and emails open as before, and they're sent to Telegram, VK, WhatsApp, email and BILLmanager from S3.
  • Retention no longer applies to files moved to S3.

A file that couldn't be moved (missing on disk, the copy didn't match, a connection error) stays where it was, and the summary says why. The other files keep moving. If the bucket stops answering altogether, the move stops. Start it again — files already moved are skipped and it carries on with the rest. If the server restarts mid-move, the move resumes by itself within a few minutes.

Moving back to local storage works the same way: select “Local storage”, save and click “Move to local storage”. A file is deleted from the bucket only after a verified copy. Retention starts applying to the moved files, counted from the day of the move (article and template attachments are still never deleted).

A project runs one file operation at a time: a move, a clean-up or compression. While one runs, the other buttons are unavailable.

Where the space goes

The project's files broken down by kind (images, video, audio and voice, documents), by source (Telegram, VK, WhatsApp, widget, email, BILLmanager, API, knowledge base and templates, customer avatars, unattached) and by month over the last year, plus the 20 largest files with a link to the ticket they came in. A file used in several places counts once. File names are hidden in streamer mode.

Cleaning up files

Deletes files right away, without waiting for retention, in both storages. First click “Show what will be deleted” to see how many files and megabytes will go, with the largest of them as examples. Deletion starts after you confirm and runs in the background.

  • Older than a period — files uploaded more than N days ago.
  • Unused — files not attached to any message, article or template, not a customer's avatar, and not linked from any text. Files younger than a day are left alone: they may have just been uploaded to be sent.
Deleted files can't be restored. Knowledge base and template attachments and customer avatars are never deleted in either mode.

Image compression

With “Compress new images” on, large photos are scaled down on upload so the long side fits the chosen size (1280, 1920 or 2560 px, or “No downscaling”) and saved as JPEG at quality 82 — a format every channel and mail client opens. Images with transparency stay PNG. Small images are never enlarged.

  • The EXIF orientation is applied to the image itself, and the EXIF data, location included, is removed.
  • Left alone: GIFs and other animations, stickers, files under 100 KB, images sent to Telegram as a file, and anything that wouldn't come out noticeably smaller.

“Compress uploaded images” does the same to images uploaded earlier, using the saved settings, in both storages. Originals are replaced with the compressed versions; the original quality can't be restored. Images already compressed are skipped; pick a smaller size later and they're compressed again. The summary shows how much space was freed.

Was this page helpful?