Why storing files for the web is not as straightforward as you might think.
summary
A file-storage abstraction called DEPOT emerges from a real migration emergency when disk-backed storage fails on Heroku; it supports GridFS and S3 backends, lets code keep the same API while ops switch storage, and can use multiple storage engines concurrently. It provides a small middleware to serve files, SQLAlchemy and MongoDB attachments, and transactional safety that restores files on DB rollback. Deployed in production, shipped with tests and claims of 100% coverage.
AI-written summary · about
chapters (19)
- 0:00Start
- 0:54Background
- 2:21The Technical Consultant
- 9:35Lessons learnt by working on TurboGears2 for the past years
- 13:51Allow for Infrastructure changes
- 15:20Have your choice
- 15:50Multiple Storages
- 17:25DepotManager
- 18:35Easy to Use
- 22:15Empowers your loved queries!
- 22:29Copes with Database
- 23:52Easy to Extend
- 25:04Custom Attachments
- 26:27Writing a Custom Attachment
- 29:30Filters
- 30:31Writing a Filter
- 31:22Store what you need in metadata
- 31:38Made for the Web
- 33:25Questions?
related talks
16mJust Save a File, It's Easy, Right?!
30m"What Django Deployment is Really About"
21mPractical Deployment Strategies for Production Python Apps
25mCan ActiveStorage Serve Images for the Modern Web?
22mWhat is deployment, anyway?
46mHighly Scalable Image Storage with AWS Serverless
44mMillions of Apps: What we've learned
08mBuilding a Global Object Storage Platform
