summaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-07-25 08:01:12 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-07-25 08:01:12 +0900
commitb3b82e75957b8df70d481ce18f1826db4245c6a2 (patch)
tree63abaae71a8fb4e35de5d241338644b7bbe6d0ad /src/services
parent:v: (diff)
downloadsharkey-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.ts49
-rw-r--r--src/services/drive/delete-file.ts52
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
}