Private by default
Every object lives under its own organization key, and all access runs through short-lived, permission-checked links. There are no public URLs.
Bestanden gaan rechtstreeks naar private opslag, en elke byte wordt gecontroleerd.
Een documentbijlage, een formulierupload of een gegenereerde export gaat van de browser naar private opslag zonder langs de applicatieserver te komen. De server ondertekent eerst een kortlevende link en vergelijkt daarna de opgeslagen grootte en vingerafdruk met wat er is opgegeven. Alleen bij een match wordt het bestand te downloaden, en elke downloadlink is kortlevend en gecontroleerd op rechten.
Productvoorbeeld
Dit is hetzelfde visuele component als in de ingelogde applicatie, met voorspelbare voorbeelddata.
The metadata, its classification, the download link and the durable deletion controls.
Inerte voorbeelddata · geen netwerktoegang
Voorbeeld gereed
Kernpunten
Every object lives under its own organization key, and all access runs through short-lived, permission-checked links. There are no public URLs.
After the upload the server asks the provider for the real size and fingerprint and compares them to what was declared. A mismatch is quarantined instead of published.
Deleting hides the object at once, then a retrying job removes the bytes. If the provider keeps refusing, the object is flagged as failed rather than left to linger unnoticed.
Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw, en anders.
Streaming a large file through the application burns memory until requests time out. Letting the browser write straight to a bucket usually skips the permission check. Here the server approves first and the bytes still go direct.
An upload is cut off halfway, or the bytes differ from what was declared. Without a settlement step the broken file becomes downloadable. A mismatch here means quarantine, never availability.
A delete that fails silently leaves bytes we are still paying for, and worse, bytes marked as gone that are not. A failed deletion here surfaces with its last error for a person to act on.
Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.
Ask for an upload link
The server checks your role plus the declared name, type, size and fingerprint, then returns a signed link valid for ten minutes.
The browser uploads directly
The file goes from the browser to the storage provider with progress reporting. The application server never handles the bytes.
The server verifies
After the upload the server reads the object’s real size and fingerprint from the provider. A match makes it available, a mismatch quarantines it and fails the confirmation.
Deletion is a job, not a wish
Deleting removes the object from listings immediately, then a retrying job removes the bytes. Persistent failures are flagged for the control center.
Technische garanties
Het certificeringsbewijs draait tegen een wegwerpbare lokale S3-compatibele provider, niet tegen de gehoste. Bonnen en factuurbijlagen bij finance zijn op dit onderdeel gebouwd, maar hun resource is nog concept, dus die uploadroute blijft dicht tot hij gecertificeerd is.
De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:
src/features/storage/server.tssrc/features/storage/jobs.tssrc/features/storage/browser-upload.ts.resource-certifications/storage.jsonDeze functies delen contracten en grenzen met deze pagina.
De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.