Introduction
Farbor is asset/file management server that allows to collect files, validate them and process upon read.
Responsibilities during upload:
- handles authorization and authentication
- preprocesses file content (resize, autorotation) if needed
- validates against defined requirements (file size, image dimensions, aspect ratio, contains face)
- exposes metadata, requirements for each collection over HTTP so client can validate files before uploading or change UI based on requirements.
Responsibilities during read:
- handles authorization and authentication is needed (only for
private
files) - processes file content depending on user request (resize, rotation, scale, crop)
Why
Usually files are stored at s3 or other cloud provider. This naive approach lacks of crucial components required for real life applications like:
- validation (file size, image dimensions, aspect ratio, contains face)
- preprocessing before saving
- more advanced authentication control that does not require to create presigned URL for every file
- processing for reading (resize, crop, color changes, extraction of image)