A service that manages files by tags.
- Upload and manage files with tags
- Search and filter files by name, tags, and other metadata
- Automatic re-indexing of files for fast search
- RESTful API interface
AWS_ACCESS_KEY_ID
: The AWS access key ID to use.AWS_SECRET_ACCESS_KEY
: The AWS secret access key to use.AWS_REGION
: The AWS region to use.AWS_S3_BUCKET_NAME
: The AWS S3 bucket name to use.DATABASE_URL
: The URL of the database to use.MEILISEARCH_URL
: The URL of the Meilisearch instance to use.MEILISEARCH_API_KEY
: The API key of the Meilisearch instance to use.
-
GET /files
- List files with pagination- Query Parameters:
limit
(optional, default: 25, range: 1-100) - Number of files to returnlast-file-id
(optional) - Last file ID for paginationlast-file-uploaded-at
(optional) - Last file uploaded timestamp for pagination
- Query Parameters:
-
GET /files/<file_id>
- Get file details by ID -
POST /files/<file_id>/download-urls
- Generate a presigned download URL for a file -
POST /files
- Create a new file- Body: JSON object with file details (name, size, mime_type, tags)
-
POST /files/<file_id>/upload-urls
- Generate a presigned upload URL for a file -
PATCH /files/<file_id>
- Update file details- Body: JSON object with updateable fields (name, size, mime_type, tags)
-
GET /admin-tasks
- List admin tasks with pagination- Query Parameters:
limit
(optional, default: 25, range: 1-100) - Number of tasks to returnlast-admin-task-id
(optional) - Last task ID for paginationlast-admin-task-updated-at
(optional) - Last task updated timestamp for pagination
- Query Parameters:
-
GET /admin-tasks/<task_id>
- Get admin task details by ID -
POST /admin-tasks/re-index
- Trigger a re-indexing task for all files
POST /searches/files
- Search files by query and filters- Body: JSON object with search parameters (q, limit, filters)
Filters are nested arrays, outer array is AND
and inner array is OR
.
Example: List all files with pdf
, jpeg
, or png
mime type, and a size greater than 5MB.
{
"q": "pdf or jpeg or png",
"filters": [
[
{ "type": "mimeType", "value": "application/pdf" },
{ "type": "mimeType", "value": "image/jpeg" },
{ "type": "mimeType", "value": "image/png" }
],
[{ "type": "size", "operator": "gt", "value": 5000000 }]
]
}