ROQ provides a complete solution for file management, including these features:
- File associations (files can be related to any object).
- File upload using the UI component.
- File categories.
- Files visibility (public or private).
ROQ offers a complete solution for managing public and private files with its Files API. Refer to this section for detailed information on the API.
ROQ's file management provides multiple UI components that can be integrated into your application:
<FileUpload/>component represents a button which opens a file selector and starts uploads.
<FileDropzone/>UI component represents an area on your application where users can drag and drop files to be uploaded.
<FileActiveUploads/>component shows a progress bar of all active files uploads.
When a file is stored on the ROQ Platform, it usually belongs to another object. For instance, PDF files can be uploaded and related to a "contract". The primary purpose and advantage of file associations is simplifying the database schema.
Files uploaded to the ROQ Platform are stored on Scaleway Object Storage (opens in a new tab). The data center is located in Paris.
Files can be uploaded via File Upload UI component or programmatically using the createFileUpload() API. The upload is realized using signed URLs, which means the files are uploaded directly from the user's browser to the object storage without sending it through your backend.
A file can be either public or private. Public means that there is a permanent URL that anyone can use, while private files can only be accessed by users who are allowed to do so. The visibility of a file can be changed in ROQ Console or via makeFilePublic()/makeFilePrivate() APIs
You can define permissions of files using ROQ's access management feature. Files are always owned by the user who uploaded them. You can restrict access to this user or enable users of the same tenant to download the file.
These tutorials sections explain more about ROQ File API for the generated or custom application development, such as how to upload files, configure file categories, create file associations, fetch uploaded files, etc.