diff options
| author | Emi Simpson <emi@alchemi.dev> | 2022-11-22 16:15:50 -0500 |
|---|---|---|
| committer | Mia Herkt <mia@0x0.st> | 2022-11-29 13:09:26 +0100 |
| commit | af4b3b06c0d75a01c1fa59f1f6a4bae12e69daa5 (patch) | |
| tree | 77c93c41a290e8c13dddc3daf0c7dc0773e32de1 /instance/config.example.py | |
| parent | 00dba0e189125706528068459ec35a1895f20736 (diff) | |
Add support for expiring files
SUPPLEMENTALLY:
- Add an `expiration` field to the `file` table of the database
- Produce a migration for the above change
- Overhaul the cleanup script, and integrate into fhost.py
(now run using FLASK_APP=fhost flask prune)
- Replace the old cleanup script with a deprecation notice
- Add information about how to expire files to the index
- Update the README with information about the new script
Squashed commits:
Add a note explaining that expired files aren't immediately removed
Show correct times on the index page graph
Improve the migration script, removing the need for --legacy
Use automap in place of an explicit file map in migration
Remove vestigial `touch()`
Don't crash when upgrading a fresh database
Remove vestigial warning about legacy files
More efficiently filter to unexpired files when migrating
https://git.0x0.st/mia/0x0/pulls/72#issuecomment-224
Coalesce updates to the database during migration
https://git.0x0.st/mia/0x0/pulls/72#issuecomment-226
Remove vestigial database model
https://git.0x0.st/mia/0x0/pulls/72#issuecomment-261
prune: Stream expired files from the database
(as opposed to collecting them all first)
config.example.py: Add min & max expiration + description
Diffstat (limited to 'instance/config.example.py')
| -rw-r--r-- | instance/config.example.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/instance/config.example.py b/instance/config.example.py index 64c977c..019ec11 100644 --- a/instance/config.example.py +++ b/instance/config.example.py @@ -45,6 +45,19 @@ MAX_CONTENT_LENGTH = 256 * 1024 * 1024 # Default: 256MiB MAX_URL_LENGTH = 4096 +# The minimum and maximum amount of time we'll retain a file for +# +# Small files (nearing zero bytes) are stored for the longest possible expiration date, +# while larger files (nearing MAX_CONTENT_LENGTH bytes) are stored for the shortest amount +# of time. Values between these two extremes are interpolated with an exponential curve, +# like the one shown on the index page. +# +# All times are in milliseconds. If you want all files to be stored for the same amount +# of time, set these to the same value. +FHOST_MIN_EXPIRATION = 30 * 24 * 60 * 60 * 1000 +FHOST_MAX_EXPIRATION = 365 * 24 * 60 * 60 * 1000 + + # Use the X-SENDFILE header to speed up serving files w/ compatible webservers # # Some webservers can be configured use the X-Sendfile header to handle sending |
