summaryrefslogtreecommitdiff
path: root/src/services/drive
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-06-15 09:53:30 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-06-15 09:53:30 +0900
commitbd827f946a94061f9f720cafe26323ccb605ee92 (patch)
tree1ed4dd13bbb7f1343582de48b97570bd5bfc530d /src/services/drive
parentFix (diff)
downloadmisskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.gz
misskey-bd827f946a94061f9f720cafe26323ccb605ee92.tar.bz2
misskey-bd827f946a94061f9f720cafe26323ccb605ee92.zip
ドライブのファイルの削除を実装
Diffstat (limited to 'src/services/drive')
-rw-r--r--src/services/drive/add-file.ts31
-rw-r--r--src/services/drive/delete-file.ts30
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
+}