אחסון קבצים והעלאות
טיפול בהעלאת קבצים מרובי חלקים לתמונות, צילומי מסך ונכסי מכשירים.
מקור: src/upload/
נקודות קצה
| שיטה | נקודת קצה | תיאור |
|---|---|---|
POST | /upload | העלאת תמונה כללית |
POST | /upload/screenshot | העלאת צילום מסך מכשיר |
GET | /upload/assets | רשימת נכסים שהועלו |
GET | /upload/assets/:id | פרטי נכס |
DELETE | /upload/assets/:id | מחיקת נכס |
אימות העלאה
| בדיקה | כלל |
|---|---|
| סוג MIME | image/jpeg, image/png, image/webp, image/gif בלבד |
| גודל קובץ | מקסימום 10 MB |
| Multipart | הבקשה חייבת להיות multipart (req.isMultipart()) |
| שם קובץ | מסונן — סיומת אקראית דרך crypto.randomBytes(6), סיומת מנוקה עם regex |
אחסון
- תיקייה:
uploads/(שורש הפרויקט) - צילומי מסך:
uploads/screenshots/ - תיקיות נוצרות אוטומטית באתחול השירות
- קבצים מוגשים דרך הגשת קבצים סטטיים או Cloudinary (ייצור)
העלאות צילומי מסך
צילומי מסך של מכשירים כוללים:
deviceId— נדרש, מאומת מול בעלות מכשירuserId— מצורף ידנית (העלאות קבצים מדלגות עלTenantInterceptor)
הערת אבטחה
מטפלי העלאת קבצים עוקפים את ה-TenantInterceptor הסטנדרטי. יש לצרף את userId ידנית במטפלי ההעלאה לשמירה על בידוד דיירים.
מודל Prisma
UploadAsset— מטאדטה של נכס (שם קובץ, נתיב, גודל, שיוך למכשיר)
מודולים קשורים
ScreenshotsModule— שכבת ניהול צילומי מסךDevicesModule— אימות בעלות מכשיר