mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-09-01 08:04:07 +00:00
remove orphaned media files
This commit is contained in:
parent
644a2c1e3a
commit
54538a6c31
1 changed files with 47 additions and 0 deletions
|
|
@ -222,6 +222,19 @@ Future<void> finishStartedPreprocessing() async {
|
||||||
Log.info('Ignoring media files as it is a draft');
|
Log.info('Ignoring media files as it is a draft');
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final messages = await twonlyDB.messagesDao.getMessagesByMediaId(
|
||||||
|
mediaFile.mediaId,
|
||||||
|
);
|
||||||
|
if (messages.isEmpty) {
|
||||||
|
Log.info(
|
||||||
|
'Deleted orphaned media file ${mediaFile.mediaId} as no messages reference it.',
|
||||||
|
);
|
||||||
|
MediaFileService(mediaFile).fullMediaRemoval();
|
||||||
|
await twonlyDB.mediaFilesDao.deleteMediaFile(mediaFile.mediaId);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
final service = MediaFileService(mediaFile);
|
final service = MediaFileService(mediaFile);
|
||||||
if (!service.originalPath.existsSync() &&
|
if (!service.originalPath.existsSync() &&
|
||||||
|
|
@ -492,20 +505,51 @@ Future<void> _startBackgroundMediaUploadInternal(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mediaService.encryptedPath.existsSync()) {
|
if (!mediaService.encryptedPath.existsSync()) {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Encrypted file not found. Starting encryption.',
|
||||||
|
);
|
||||||
await _encryptMediaFiles(mediaService);
|
await _encryptMediaFiles(mediaService);
|
||||||
if (!mediaService.encryptedPath.existsSync()) {
|
if (!mediaService.encryptedPath.existsSync()) {
|
||||||
|
Log.warn(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Encryption failed. Encrypted file still missing.',
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Encryption completed successfully.',
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Encrypted file already exists.',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mediaService.uploadRequestPath.existsSync()) {
|
if (!mediaService.uploadRequestPath.existsSync()) {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Upload request file not found. Creating it.',
|
||||||
|
);
|
||||||
await _createUploadRequest(mediaService);
|
await _createUploadRequest(mediaService);
|
||||||
|
if (!mediaService.uploadRequestPath.existsSync()) {
|
||||||
|
Log.warn(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Upload request file creation returned empty (e.g. no messages).',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Upload request file already exists.',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mediaService.uploadRequestPath.existsSync()) {
|
if (mediaService.uploadRequestPath.existsSync()) {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Transitioning uploadState from ${mediaService.mediaFile.uploadState} to uploading.',
|
||||||
|
);
|
||||||
await mediaService.setUploadState(UploadState.uploading);
|
await mediaService.setUploadState(UploadState.uploading);
|
||||||
// at this point the original file is not used any more, so it can be deleted
|
// at this point the original file is not used any more, so it can be deleted
|
||||||
if (mediaService.originalPath.existsSync()) {
|
if (mediaService.originalPath.existsSync()) {
|
||||||
|
Log.info(
|
||||||
|
'Media ${mediaService.mediaFile.mediaId}: Deleting original file as it is now encrypted.',
|
||||||
|
);
|
||||||
mediaService.originalPath.deleteSync();
|
mediaService.originalPath.deleteSync();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -553,6 +597,9 @@ Future<void> _createUploadRequest(MediaFileService media) async {
|
||||||
|
|
||||||
if (messages.isEmpty) {
|
if (messages.isEmpty) {
|
||||||
// There where no user selected who should receive the image, so waiting with this step...
|
// There where no user selected who should receive the image, so waiting with this step...
|
||||||
|
Log.info(
|
||||||
|
'Media ${media.mediaFile.mediaId}: No recipient messages found, waiting to create upload request',
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue