fix: add thumbnail cleanup on archive deletion and diagnostic scripts
Test and Lint / backend-test (push) Successful in 1m8s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m23s
Version and Release / version-bump (push) Successful in 32s
Version and Release / trigger-drone (push) Successful in 3s
Test and Lint / backend-test (push) Successful in 1m8s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m23s
Version and Release / version-bump (push) Successful in 32s
Version and Release / trigger-drone (push) Successful in 3s
- Fix archive deletion to also clean up associated thumbnails - Add cleanup-thumbnails.js script to remove temporary and orphaned thumbnails - Add diagnose-thumbnails.js script to troubleshoot thumbnail serving issues - Update README with documentation for new scripts This prevents thumbnail accumulation when events are deleted and helps diagnose why thumbnails might not be showing despite existing on disk. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -363,12 +363,29 @@ router.delete('/:id', adminAuth, async (req, res) => {
|
||||
// Delete archive file if exists
|
||||
if (archive.archive_path) {
|
||||
try {
|
||||
await fs.unlink(archive.archive_path);
|
||||
const storagePath = process.env.STORAGE_PATH || path.join(__dirname, '../../../storage');
|
||||
const fullArchivePath = path.join(storagePath, archive.archive_path);
|
||||
await fs.unlink(fullArchivePath);
|
||||
} catch (error) {
|
||||
console.error('Failed to delete archive file:', error);
|
||||
}
|
||||
}
|
||||
|
||||
// Delete thumbnails for this event
|
||||
const photos = await db('photos').where('event_id', req.params.id).select('thumbnail_path');
|
||||
const storagePath = process.env.STORAGE_PATH || path.join(__dirname, '../../../storage');
|
||||
|
||||
for (const photo of photos) {
|
||||
if (photo.thumbnail_path) {
|
||||
try {
|
||||
const thumbPath = path.join(storagePath, photo.thumbnail_path.replace(/^\//, ''));
|
||||
await fs.unlink(thumbPath);
|
||||
} catch (error) {
|
||||
// Ignore errors - thumbnail might already be deleted
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete from database (cascade will delete photos and logs)
|
||||
await db('events').where('id', req.params.id).delete();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user