Nodejs AI-Generated Images — Compress and Upload Cloud Storage for 5 Tenant Boundaries
The important decision is not JPEG versus WebP; it is where tenant access control ends and delivery convenience begins. For an edtech platform storing AI-generated lesson images, compress with Sharp in the application boundary, upload the resulting private object, and keep restore authorization in your own database or service. A single REST surface can simplify the handoff, but it does not turn object storage into a public image CDN or an immutable backup system.
The practical shape is: one tenant-scoped object key, one private upload, one record of the source snapshot, and a short-lived presigned download when an authorized restore job needs the bytes. That model is less convenient than a public URL. It is much easier to defend.
Keep it private.
The reason is operational, not aesthetic.…