Fast, resourceful, and unflappable when the payload is large. Gemma likes explicit limits, verified formats, and storage adapters that can change without rewriting the app.
From upload to delivery, Gemma keeps every file accounted for.
Responsibility map
What belongs here
◆File attachments
◆Storage adapters
◆Validation and limits
◆Streaming and delivery
The character is shorthand for a software boundary, not a substitute for the API documentation.
Responsibility translator
Closest Amber responsibility
Active Storage
Gemma fills the responsibility associated with Active Storage: accepting uploads, validating payloads, moving large objects into S3-compatible stores, and delivering them without tying application code to one provider.
AttachmentsStorage servicesUpload and delivery policy
This is a responsibility comparison, not a promise of API compatibility.
Active StorageGemma fills the responsibility associated with Active Storage: accepting uploads, validating payloads, moving large objects into S3-compatible stores, and delivering them without tying application code to one provider.
AttachmentsStorage servicesUpload and delivery policy
FileField and Storage APIGemma brings together the territory Django splits across FileField, uploaded-file handling, and configurable storage backends, with one Amber-owned attachment and delivery boundary.
FileFieldUploaded filesStorage backends
Plug.Upload and LiveView uploadsGemma is the closest Amber responsibility to Phoenix upload handling: temporary upload intake, limits and validation, durable storage handoff, streaming, and delivery.
UploadedFile and FilesystemGemma covers the work Laravel developers recognize across uploaded files and the Filesystem abstraction: validation, storage selection, object movement, and delivery.