Files and search¶
IBlobStorage puts, opens and deletes bytes under a key. Whether they land in a local folder, an S3 bucket (MinIO works too) or Azure Blob Storage is a single setting, Coworkee:Storage:Provider:
await storage.PutAsync($"documents/{document.Id}", stream, contentType, ct);
await using var content = await storage.OpenReadAsync($"documents/{document.Id}", ct);
For a download link in a mail, BlobLinks signs one that expires.
The Files page¶
The Files module puts an organisation's drive on top: folder tree, tiles or details, drag and drop to upload and move, a double-click opens the preview in a side sheet. Roles can be granted per folder, and the grant covers everything below it. Uploads stream to storage, up to 2 GB per file by default. An uploaded HTML or SVG file can be looked at but runs no script.
Forms pick files with CoworkeeFilePicker:
The library uses it too. The theme editor takes its logo from the files, and the sign-in page its background image or video.

That sign-in media has to load without a session, so it comes from a public file. Any single file can be made public (Make public, then Copy public link) and is then served under /api/v1/files/public/{id}/{name} to anyone. Browsers cache it for five minutes at most, so making it private again takes effect shortly after. PublicFileChooser.ChooseAsync(...) does the picking, the question and the publishing in one call.
Search¶
Coworkee.Search describes an index, the Elasticsearch package implements it, and your app decides what goes in:
var schema = new SearchSchema("myapp-products",
[
new SearchField("name", SearchFieldType.Text),
new SearchField("brand", SearchFieldType.Keyword),
]);
await index.EnsureAsync(schema, ct);
Full text, filters, facets and cursor paging are there. CreateIndexAsync and SwapAsync rebuild an index in the background and switch the alias without downtime.
Status: public files are new in 0.0.1.24 and need a migration in apps that use the Files module. Folders have no public state; each file is published on its own.
Reference: File storage, Files, public files, Search.