Implements cloud-based file storage for plant photos, documents, and certificates: Storage Layer: - Multi-provider support (AWS S3, Cloudflare R2, MinIO, local filesystem) - S3-compatible provider with presigned URL generation - Local storage provider for development with signed URL verification - Configurable via environment variables Image Processing: - Automatic thumbnail generation (150x150, 300x300, 600x600, 1200x1200) - WebP conversion for optimized file sizes - EXIF data extraction for image metadata - Image optimization with Sharp API Endpoints: - POST /api/upload/image - Upload images with automatic processing - POST /api/upload/document - Upload documents (PDF, DOC, DOCX) - POST /api/upload/presigned - Get presigned URLs for direct uploads - GET/DELETE /api/upload/[fileId] - File management UI Components: - ImageUploader - Drag & drop image upload with preview - PhotoGallery - Grid gallery with lightbox view - DocumentUploader - Document upload with file type icons - ProgressBar - Animated upload progress indicator Database: - FileStore service with in-memory storage (Prisma schema ready for Agent 2) - File metadata tracking with soft delete support - Category-based file organization
11 lines
316 B
TypeScript
11 lines
316 B
TypeScript
/**
|
|
* Upload Components Index
|
|
* Agent 3: File Upload & Storage System
|
|
*
|
|
* Export all upload-related components
|
|
*/
|
|
|
|
export { ImageUploader } from './ImageUploader';
|
|
export { PhotoGallery } from './PhotoGallery';
|
|
export { DocumentUploader } from './DocumentUploader';
|
|
export { ProgressBar } from './ProgressBar';
|