Uploading Files
Drag and Drop
The easiest way to add attachments:- Open the memo editor
- Drag files from your desktop
- Drop them onto the editor
- Files upload automatically
- New memo creation
- Editing existing memos
- Comments
Upload Button
Use the toolbar for traditional file selection:- Click the attachment icon in the toolbar
- Browse your file system
- Select one or more files
- Files upload and attach to your memo
Paste from Clipboard
Quickly paste screenshots and images:- Copy an image to your clipboard
- Paste (
Ctrl/Cmd + V) in the editor - The image uploads automatically
- A reference is inserted at your cursor
- Screenshots
- Images from other applications
- Copied files from file managers
File Types
- Images
- Documents
- Media
- Other
Supported formats:
- JPEG/JPG - Photos and compressed images
- PNG - Screenshots and graphics with transparency
- GIF - Animations
- WebP - Modern web format
- SVG - Vector graphics
- HEIC/HEIF - Apple’s high-efficiency formats
- TIFF - High-quality images
- Automatic thumbnails
- Responsive sizing
- Lazy loading
- EXIF metadata removal (privacy protection)
Privacy & Security
Automatic EXIF Stripping
Memos automatically removes EXIF data from uploaded images for your privacy:What's Removed
- GPS coordinates
- Camera make and model
- Date/time taken
- Software used
- Copyright information
- Thumbnail previews
What's Preserved
- Image content and quality
- Dimensions and aspect ratio
- Color profiles
- Visual appearance
- JPEG quality: 95%
- PNG: lossless
- JPEG/JPG
- TIFF
- WebP
- HEIC/HEIF
- Image is decoded on upload
- EXIF orientation is applied (image displays correctly)
- Image is re-encoded without metadata
- Clean image is stored
If EXIF stripping fails, the original image is uploaded with a warning logged. Uploads never fail due to metadata issues.
File Validation
All uploads are validated:Storage Options
- Local Storage
- S3 Storage
Files stored on your server’s filesystem:Configuration:Template variables:Pros:
{filename}- Original filename{timestamp}- Unix timestamp{year}- Current year (4 digits){month}- Current month (2 digits){day}- Current day (2 digits){hour}- Current hour (2 digits){minute}- Current minute (2 digits){second}- Current second (2 digits){uuid}- Random UUID
- Simple setup
- No external dependencies
- Fast access
- No additional costs
- Limited by server disk space
- Backups required
- No CDN support
Upload Limits
Configure maximum upload size:- Upload size: 32 MB (configurable)
- Memory buffer: 32 MB (system constant)
- Concurrent uploads: No hard limit (browser/network constrained)
Large files (>100MB) should use cloud storage with direct upload capabilities for better performance.
Managing Attachments
View Attachments
Access all your uploaded files:- Navigate to Attachments page from the sidebar
- View all attachments with metadata:
- Filename
- Type (MIME)
- Size
- Upload date
- Associated memo (if any)
Filter Attachments
Use the filter syntax:Delete Attachments
To delete:- Find the attachment in the Attachments page
- Click the delete icon
- Confirm deletion
- File is removed from storage
- Database record is deleted
- Memo references become broken links
- Thumbnails are also deleted
Rename Attachments
Update attachment metadata:- Display name in UI
- Download filename
- Metadata only (file on disk unchanged)
Linking Attachments to Memos
During Creation
Attachments are automatically linked when uploaded:After Upload
Link existing attachments:Unlink Attachments
Remove attachment from memo (file remains):Access Control
Attachment visibility follows memo visibility:Private Memo
Only the creator can access attachments.
Protected Memo
All authenticated users can access.
Public Memo
Anyone with the link can access, even without login.
- Only the creator can access
- Not visible in public/protected contexts
- Useful for staging before publishing
API Reference
Create Attachment
List Attachments
Download Attachment
API Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/api/v1/attachments | POST | Upload attachment |
/api/v1/attachments | GET | List attachments |
/api/v1/attachments/{id} | GET | Get attachment metadata |
/api/v1/attachments/{id} | PATCH | Update filename |
/api/v1/attachments/{id} | DELETE | Delete attachment |
/api/v1/memos/{id}/attachments | GET | List memo attachments |
/api/v1/memos/{id}/attachments | PATCH | Set memo attachments |
/o/attachments/{id} | GET | Download file (direct) |
Thumbnails
Images automatically generate thumbnails: Supported formats:image/pngimage/jpeg
- Created on-demand
- Cached in
.thumbnail_cache/directory - Maximum 3 concurrent generations (prevents overload)
- Responsive sizes for different viewports
Best Practices
Image Optimization
Image Optimization
- Compress images before upload (use tools like TinyPNG)
- Use WebP format for better compression
- Resize large images to reasonable dimensions (< 4K)
- Prefer JPEG for photos, PNG for screenshots
File Organization
File Organization
- Use descriptive filenames
- Link attachments to memos immediately
- Periodically clean up unused attachments
- Use cloud storage for archival content
Security
Security
- Never upload sensitive unencrypted data
- Verify EXIF stripping for privacy-sensitive photos
- Use private memos for confidential attachments
- Enable S3 bucket policies for additional security
Performance
Performance
- Batch upload multiple small files
- Use S3 with CDN for global distribution
- Clean thumbnail cache periodically
- Monitor storage usage and set limits
Troubleshooting
Upload Fails
Upload Fails
Possible causes:
- File exceeds size limit
- Invalid filename or MIME type
- Storage quota exceeded
- Network timeout
- Check file size against limit
- Rename file to remove special characters
- Verify storage configuration
- Try smaller files or chunks
Image Not Displaying
Image Not Displaying
Check:
- Attachment is linked to memo
- File permissions (local storage)
- S3 presigned URL is valid
- Browser console for errors
- Re-link attachment
- Fix file permissions (644 recommended)
- Trigger URL refresh
- Clear browser cache
EXIF Not Stripped
EXIF Not Stripped
Verify:
- Check server logs for warnings
- Download and inspect with ExifTool
- Confirm image format is supported
Next Steps
Creating Memos
Learn how to create memos with attachments
Markdown Support
Embed attachments in Markdown content
Storage Configuration
Configure local or S3 storage
API Reference
Full attachment API documentation