Optimize entity thumbnail storage #364
Merged
+420
−130
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces several enhancements and new functionalities to the thumbnail storage and retrieval system. The most important changes include adding support for original thumbnails, refactoring storage methods, and improving the cleanup process for unused thumbnails.
When an uploaded thumbnail is larger than a defined value (currently hardcoded 600px both width and height) the original is stored in the project storage (server/projects/{project_name}/thumbnails) and a scaled down version is saved to the DB for quick retrieval.
Tasks
?original=true
in[GET] ..../thumbnail
endpoints to retrieve the original imageDescription of changes
original
parameter to various thumbnail retrieval functions to fetch the original image from storage if available.ProjectStorage
for handling thumbnails, including storing, retrieving, and deleting thumbnail images.clear_thumbnails
function to improve the deletion process of old thumbnails, ensuring that only those not referenced in the database are removed.These changes collectively enhance the robustness and functionality of the thumbnail management system, making it more efficient and easier to maintain.