S3
Store images and files in S3
Devora Cloud keeps application execution, databases and file storage as separate resources connected to your project.
Example: a product photo lives in S3. The database stores the name, price and reference to that photo.
Store file contents in object storage. Keep only metadata and the object key or URL in the database. Tell your development AI to follow this pattern, without binary columns for photos, videos or attachments.
Adding S3 provides connection settings. Your application must use those settings and an S3-compatible SDK to upload and retrieve files. Clicking does not migrate old files, change code or back up the database.
An app already using R2, IDrive e2 or another S3 service can keep using it. Changing providers requires copying objects, checking permissions and updating references before retiring the old service.
Do not use disposable container files for permanent uploads. Use authentication and expiring signed links for private files; do not make the entire bucket public to fix access.
New panel connections depend on project-restricted credentials. Storage administration keys must not be distributed to customer applications.
Add resource opens a form with name and project. Multiple databases and S3 links appear as separate list rows. Additional S3 links use separate prefixes and S3_<identifier>_* variables. Additional databases receive their own connection variable shown in details; adding a resource preserves existing connections. Owner links still share integration credentials; prefixes do not isolate those credentials.
Open Databases or Storage · S3 in the account menu. Search the resource list and click a row to expand its details below the row in the same table.
Database: Connection shows the private host and port. Show credentials retrieves the full password-bearing URI for authorized users only. Never publish it in Git, public pages or uncontrolled conversations.
External access: check the current state, request internet access and confirm exposure. The worker must apply network rules and publish an address. An accepted request does not mean connectivity is ready: check Activity and test. Private IP addresses do not work over the internet. Disable external access when no longer needed.
S3: the owner administrator can select a project when adding storage. The link provides a stable organization/project prefix and S3_ENDPOINT, S3_REGION, S3_BUCKET, S3_PREFIX, S3_FORCE_PATH_STYLE, S3_ACCESS_KEY and S3_SECRET_KEY. Your SDK must prepend S3_PREFIX to object keys.
Owner integration uses owner credentials. Prefixes organize objects but do not restrict those credentials. Customer sales require provider-restricted credentials and enforced quotas; automatic ordering remains unavailable until these exist. Unlinking storage preserves objects.
Development AI: configure the S3 client on the server, upload to the bucket/prefix, store keys and metadata in the database and issue signed URLs for private reads. Never place secret keys in NEXT_PUBLIC_*, browser JavaScript or Git.
Encryption at rest and HTTPS connections for managed storage. The current bucket uses SSE-KMS by default. Access depends on credentials and permissions; private files should use expiring signed links.
1 TB = 1,000 GB. Billed separately from applications, in US dollars (USD).
Ordering is being prepared. No automatic charges or activation are available.