diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-06-15 09:53:30 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-06-15 09:53:30 +0900 |
| commit | bd827f946a94061f9f720cafe26323ccb605ee92 (patch) | |
| tree | 1ed4dd13bbb7f1343582de48b97570bd5bfc530d /src/services/drive | |
| parent | Fix (diff) | |
| download | misskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.gz misskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.bz2 misskey-bd827f946a94061f9f720cafe26323ccb605ee92.zip | |
ドライブのファイルの削除を実装
Diffstat (limited to 'src/services/drive')
| -rw-r--r-- | src/services/drive/add-file.ts | 31 | ||||
| -rw-r--r-- | src/services/drive/delete-file.ts | 30 |
2 files changed, 34 insertions, 27 deletions
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts index ace1a6d623..d7f71e8665 100644 --- a/src/services/drive/add-file.ts +++ b/src/services/drive/add-file.ts @@ -9,13 +9,14 @@ import * as debug from 'debug'; import fileType = require('file-type'); import prominence = require('prominence'); -import DriveFile, { IMetadata, getDriveFileBucket, IDriveFile, DriveFileChunk } from '../../models/drive-file'; +import DriveFile, { IMetadata, getDriveFileBucket, IDriveFile } from '../../models/drive-file'; import DriveFolder from '../../models/drive-folder'; import { pack } from '../../models/drive-file'; import event, { publishDriveStream } from '../../publishers/stream'; import { isLocalUser, IUser, IRemoteUser } from '../../models/user'; -import DriveFileThumbnail, { getDriveFileThumbnailBucket, DriveFileThumbnailChunk } from '../../models/drive-file-thumbnail'; +import { getDriveFileThumbnailBucket } from '../../models/drive-file-thumbnail'; import genThumbnail from '../../drive/gen-thumbnail'; +import delFile from './delete-file'; const gm = _gm.subClass({ imageMagick: true @@ -58,31 +59,7 @@ async function deleteOldFile(user: IRemoteUser) { }); if (oldFile) { - // チャンクをすべて削除 - DriveFileChunk.remove({ - files_id: oldFile._id - }); - - DriveFile.update({ _id: oldFile._id }, { - $set: { - 'metadata.deletedAt': new Date(), - 'metadata.isExpired': true - } - }); - - //#region サムネイルもあれば削除 - const thumbnail = await DriveFileThumbnail.findOne({ - 'metadata.originalId': oldFile._id - }); - - if (thumbnail) { - DriveFileThumbnailChunk.remove({ - files_id: thumbnail._id - }); - - DriveFileThumbnail.remove({ _id: thumbnail._id }); - } - //#endregion + delFile(oldFile, true); } } diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts new file mode 100644 index 0000000000..a8ed13bd77 --- /dev/null +++ b/src/services/drive/delete-file.ts @@ -0,0 +1,30 @@ +import DriveFile, { DriveFileChunk, IDriveFile } from "../../models/drive-file"; +import DriveFileThumbnail, { DriveFileThumbnailChunk } from '../../models/drive-file-thumbnail'; + +export default async function(file: IDriveFile, isExpired = false) { + // チャンクをすべて削除 + await DriveFileChunk.remove({ + files_id: file._id + }); + + await DriveFile.update({ _id: file._id }, { + $set: { + 'metadata.deletedAt': new Date(), + 'metadata.isExpired': isExpired + } + }); + + //#region サムネイルもあれば削除 + const thumbnail = await DriveFileThumbnail.findOne({ + 'metadata.originalId': file._id + }); + + if (thumbnail) { + await DriveFileThumbnailChunk.remove({ + files_id: thumbnail._id + }); + + await DriveFileThumbnail.remove({ _id: thumbnail._id }); + } + //#endregion +} |