diff --git a/packages/backend/src/core/DriveService.ts b/packages/backend/src/core/DriveService.ts index 94289f237d..468c63a9cc 100644 --- a/packages/backend/src/core/DriveService.ts +++ b/packages/backend/src/core/DriveService.ts @@ -470,7 +470,7 @@ export class DriveService { for (const fileId of exceedFileIds) { const file = await this.driveFilesRepository.findOneBy({ id: fileId }); if (file == null) continue; - this.deleteFile(file, true); + await this.deleteFile(file, true); } } @@ -718,14 +718,14 @@ export class DriveService { if (values.isSensitive !== undefined && values.isSensitive !== file.isSensitive) { const user = file.userId ? await this.usersRepository.findOneByOrFail({ id: file.userId }) : null; if (values.isSensitive) { - this.moderationLogService.log(updater, 'markSensitiveDriveFile', { + await this.moderationLogService.log(updater, 'markSensitiveDriveFile', { fileId: file.id, fileUserId: file.userId, fileUserUsername: user?.username ?? null, fileUserHost: user?.host ?? null, }); } else { - this.moderationLogService.log(updater, 'unmarkSensitiveDriveFile', { + await this.moderationLogService.log(updater, 'unmarkSensitiveDriveFile', { fileId: file.id, fileUserId: file.userId, fileUserUsername: user?.username ?? null, @@ -739,30 +739,8 @@ export class DriveService { } @bindThis - public async deleteFile(file: MiDriveFile, isExpired = false, deleter?: { id: string }) { - if (file.storedInternal) { - this.deleteLocalFile(file.accessKey!); - - if (file.thumbnailUrl) { - this.deleteLocalFile(file.thumbnailAccessKey!); - } - - if (file.webpublicUrl) { - this.deleteLocalFile(file.webpublicAccessKey!); - } - } else if (!file.isLink) { - this.queueService.createDeleteObjectStorageFileJob(file.accessKey!); - - if (file.thumbnailUrl) { - this.queueService.createDeleteObjectStorageFileJob(file.thumbnailAccessKey!); - } - - if (file.webpublicUrl) { - this.queueService.createDeleteObjectStorageFileJob(file.webpublicAccessKey!); - } - } - - this.deletePostProcess(file, isExpired, deleter); + public async deleteFile(file: MiDriveFile, isExpired = false, deleter?: MiUser) { + await this.queueService.createDeleteFileJob(file.id, isExpired, deleter?.id); } @bindThis @@ -793,14 +771,14 @@ export class DriveService { await Promise.all(promises); - this.deletePostProcess(file, isExpired, deleter); + await this.deletePostProcess(file, isExpired, deleter); } @bindThis private async deletePostProcess(file: MiDriveFile, isExpired = false, deleter?: { id: string }) { // リモートファイル期限切れ削除後は直リンクにする if (isExpired && file.userHost !== null && file.uri != null) { - this.driveFilesRepository.update(file.id, { + await this.driveFilesRepository.update(file.id, { isLink: true, url: file.uri, thumbnailUrl: null, @@ -812,7 +790,7 @@ export class DriveService { webpublicAccessKey: 'webpublic-' + randomUUID(), }); } else { - this.driveFilesRepository.delete(file.id); + await this.driveFilesRepository.delete(file.id); } this.driveChart.update(file, false); @@ -831,7 +809,7 @@ export class DriveService { if (deleter && await this.roleService.isModerator(deleter) && (file.userId !== deleter.id)) { const user = file.userId ? await this.usersRepository.findOneByOrFail({ id: file.userId }) : null; - this.moderationLogService.log(deleter, 'deleteDriveFile', { + await this.moderationLogService.log(deleter, 'deleteDriveFile', { fileId: file.id, fileUserId: file.userId, fileUserUsername: user?.username ?? null,