diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-07-25 08:01:12 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-07-25 08:01:12 +0900 |
| commit | b3b82e75957b8df70d481ce18f1826db4245c6a2 (patch) | |
| tree | 63abaae71a8fb4e35de5d241338644b7bbe6d0ad /src/services | |
| parent | :v: (diff) | |
| download | sharkey-b3b82e75957b8df70d481ce18f1826db4245c6a2.tar.gz sharkey-b3b82e75957b8df70d481ce18f1826db4245c6a2.tar.bz2 sharkey-b3b82e75957b8df70d481ce18f1826db4245c6a2.zip | |
Fix bug nado
Diffstat (limited to 'src/services')
| -rw-r--r-- | src/services/drive/add-file.ts | 49 | ||||
| -rw-r--r-- | src/services/drive/delete-file.ts | 52 |
2 files changed, 47 insertions, 54 deletions
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts index 4d14325db2..91bf5b010c 100644 --- a/src/services/drive/add-file.ts +++ b/src/services/drive/add-file.ts @@ -21,36 +21,31 @@ import config from '../../config'; const log = debug('misskey:drive:add-file'); async function save(readable: stream.Readable, name: string, type: string, hash: string, size: number, metadata: any): Promise<IDriveFile> { - if (config.drive && config.drive.storage == 'object-storage') { - if (config.drive.service == 'minio') { + if (config.drive && config.drive.storage == 'minio') { + const minio = new Minio.Client(config.drive.config); + const id = uuid.v4(); + const obj = `${config.drive.prefix}/${id}`; + await minio.putObject(config.drive.bucket, obj, readable); - const minio = new Minio.Client(config.drive.config); - const id = uuid.v4(); - const obj = `${config.drive.prefix}/${id}`; - await minio.putObject(config.drive.bucket, obj, readable); - - Object.assign(metadata, { - withoutChunks: true, - storage: 'object-storage', - storageProps: { - id: id - }, - url: `${ config.drive.config.secure ? 'https' : 'http' }://${ config.drive.config.endPoint }${ config.drive.config.port ? ':' + config.drive.config.port : '' }/${ config.drive.bucket }/${ obj }` - }); + Object.assign(metadata, { + withoutChunks: true, + storage: 'minio', + storageProps: { + id: id + }, + url: `${ config.drive.config.secure ? 'https' : 'http' }://${ config.drive.config.endPoint }${ config.drive.config.port ? ':' + config.drive.config.port : '' }/${ config.drive.bucket }/${ obj }` + }); - const file = await DriveFile.insert({ - length: size, - uploadDate: new Date(), - md5: hash, - filename: name, - metadata: metadata, - contentType: type - }); + const file = await DriveFile.insert({ + length: size, + uploadDate: new Date(), + md5: hash, + filename: name, + metadata: metadata, + contentType: type + }); - return file; - } else { - throw 'unknown storage type'; - } + return file; } else { // Get MongoDB GridFS bucket const bucket = await getDriveFileBucket(); diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts index bf9c80f485..5494023f46 100644 --- a/src/services/drive/delete-file.ts +++ b/src/services/drive/delete-file.ts @@ -4,37 +4,35 @@ import DriveFileThumbnail, { DriveFileThumbnailChunk } from '../../models/drive- import config from '../../config'; export default async function(file: IDriveFile, isExpired = false) { - if (file.metadata.withoutChunks) { - if (file.metadata.storage == 'object-storage') { - const minio = new Minio.Client(config.drive.config); - const obj = `${config.drive.prefix}/${file.metadata.storageProps.id}`; - await minio.removeObject(config.drive.bucket, obj); + if (file.metadata.storage == 'minio') { + const minio = new Minio.Client(config.drive.config); + const obj = `${config.drive.prefix}/${file.metadata.storageProps.id}`; + await minio.removeObject(config.drive.bucket, obj); + } + + // チャンクをすべて削除 + await DriveFileChunk.remove({ + files_id: file._id + }); + + await DriveFile.update({ _id: file._id }, { + $set: { + 'metadata.deletedAt': new Date(), + 'metadata.isExpired': isExpired } - } else { - // チャンクをすべて削除 - 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 + }); - //#region サムネイルもあれば削除 - const thumbnail = await DriveFileThumbnail.findOne({ - 'metadata.originalId': file._id + if (thumbnail) { + await DriveFileThumbnailChunk.remove({ + files_id: thumbnail._id }); - if (thumbnail) { - await DriveFileThumbnailChunk.remove({ - files_id: thumbnail._id - }); - - await DriveFileThumbnail.remove({ _id: thumbnail._id }); - } - //#endregion + await DriveFileThumbnail.remove({ _id: thumbnail._id }); } + //#endregion } |