summaryrefslogtreecommitdiff
path: root/src/services/drive
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2019-04-13 01:43:22 +0900
committerGitHub <noreply@github.com>2019-04-13 01:43:22 +0900
commit987168b863c52d0548050ffbac569782bb9a8cef (patch)
treec9aa2243dcdcbd044688d201a51c601574bff259 /src/services/drive
parentFix bug (diff)
downloadmisskey-987168b863c52d0548050ffbac569782bb9a8cef.tar.gz
misskey-987168b863c52d0548050ffbac569782bb9a8cef.tar.bz2
misskey-987168b863c52d0548050ffbac569782bb9a8cef.zip
strictNullChecks (#4666)
* wip * wip * wip * wip * wip * wip * wip * wip * wip * wip * wip
Diffstat (limited to 'src/services/drive')
-rw-r--r--src/services/drive/add-file.ts36
-rw-r--r--src/services/drive/delete-file.ts16
-rw-r--r--src/services/drive/image-processor.ts2
-rw-r--r--src/services/drive/upload-from-url.ts11
4 files changed, 32 insertions, 33 deletions
diff --git a/src/services/drive/add-file.ts b/src/services/drive/add-file.ts
index b83c3558d3..94b97fed61 100644
--- a/src/services/drive/add-file.ts
+++ b/src/services/drive/add-file.ts
@@ -55,10 +55,10 @@ async function save(file: DriveFile, path: string, name: string, type: string, h
const url = `${ baseUrl }/${ key }`;
// for alts
- let webpublicKey: string = null;
- let webpublicUrl: string = null;
- let thumbnailKey: string = null;
- let thumbnailUrl: string = null;
+ let webpublicKey: string | null = null;
+ let webpublicUrl: string | null = null;
+ let thumbnailKey: string | null = null;
+ let thumbnailUrl: string | null = null;
//#endregion
//#region Uploads
@@ -106,8 +106,8 @@ async function save(file: DriveFile, path: string, name: string, type: string, h
const url = InternalStorage.saveFromPath(accessKey, path);
- let thumbnailUrl: string;
- let webpublicUrl: string;
+ let thumbnailUrl: string | null = null;
+ let webpublicUrl: string | null = null;
if (alts.thumbnail) {
thumbnailUrl = InternalStorage.saveFromBuffer(thumbnailAccessKey, alts.thumbnail.data);
@@ -143,7 +143,7 @@ async function save(file: DriveFile, path: string, name: string, type: string, h
*/
export async function generateAlts(path: string, type: string, generateWeb: boolean) {
// #region webpublic
- let webpublic: IImage;
+ let webpublic: IImage | null = null;
if (generateWeb) {
logger.info(`creating web image`);
@@ -163,7 +163,7 @@ export async function generateAlts(path: string, type: string, generateWeb: bool
// #endregion webpublic
// #region thumbnail
- let thumbnail: IImage;
+ let thumbnail: IImage | null = null;
if (['image/jpeg', 'image/webp'].includes(type)) {
thumbnail = await ConvertToJpeg(path, 498, 280);
@@ -188,7 +188,7 @@ export async function generateAlts(path: string, type: string, generateWeb: bool
* Upload to ObjectStorage
*/
async function upload(key: string, stream: fs.ReadStream | Buffer, type: string, filename?: string) {
- const minio = new Minio.Client(config.drive.config);
+ const minio = new Minio.Client(config.drive!.config);
const metadata = {
'Content-Type': type,
@@ -197,7 +197,7 @@ async function upload(key: string, stream: fs.ReadStream | Buffer, type: string,
if (filename) metadata['Content-Disposition'] = contentDisposition('inline', filename);
- await minio.putObject(config.drive.bucket, key, stream, null, metadata);
+ await minio.putObject(config.drive!.bucket!, key, stream, undefined, metadata);
}
async function deleteOldFile(user: IRemoteUser) {
@@ -232,14 +232,14 @@ async function deleteOldFile(user: IRemoteUser) {
export default async function(
user: User,
path: string,
- name: string = null,
- comment: string = null,
+ name: string | null = null,
+ comment: string | null = null,
folderId: any = null,
force: boolean = false,
isLink: boolean = false,
- url: string = null,
- uri: string = null,
- sensitive: boolean = null
+ url: string | null = null,
+ uri: string | null = null,
+ sensitive: boolean | null = null
): Promise<DriveFile> {
// Calc md5 hash
const calcHash = new Promise<string>((res, rej) => {
@@ -300,7 +300,7 @@ export default async function(
throw 'no-free-space';
} else {
// (アバターまたはバナーを含まず)最も古いファイルを削除する
- deleteOldFile(user);
+ deleteOldFile(user as IRemoteUser);
}
}
}
@@ -378,7 +378,7 @@ export default async function(
file.comment = comment;
file.properties = properties;
file.isLink = isLink;
- file.isSensitive = Users.isLocalUser(user) && profile.alwaysMarkNsfw ? true :
+ file.isSensitive = Users.isLocalUser(user) && profile!.alwaysMarkNsfw ? true :
(sensitive !== null && sensitive !== undefined)
? sensitive
: false;
@@ -411,7 +411,7 @@ export default async function(
file = await DriveFiles.findOne({
uri: file.uri,
userId: user.id
- });
+ }) as DriveFile;
} else {
logger.error(e);
throw e;
diff --git a/src/services/drive/delete-file.ts b/src/services/drive/delete-file.ts
index b7fa99391e..bba453b982 100644
--- a/src/services/drive/delete-file.ts
+++ b/src/services/drive/delete-file.ts
@@ -7,31 +7,31 @@ import { driveChart, perUserDriveChart, instanceChart } from '../chart';
export default async function(file: DriveFile, isExpired = false) {
if (file.storedInternal) {
- InternalStorage.del(file.accessKey);
+ InternalStorage.del(file.accessKey!);
if (file.thumbnailUrl) {
- InternalStorage.del(file.thumbnailAccessKey);
+ InternalStorage.del(file.thumbnailAccessKey!);
}
if (file.webpublicUrl) {
- InternalStorage.del(file.webpublicAccessKey);
+ InternalStorage.del(file.webpublicAccessKey!);
}
} else if (!file.isLink) {
- const minio = new Minio.Client(config.drive.config);
+ const minio = new Minio.Client(config.drive!.config);
- await minio.removeObject(config.drive.bucket, file.accessKey);
+ await minio.removeObject(config.drive!.bucket!, file.accessKey!);
if (file.thumbnailUrl) {
- await minio.removeObject(config.drive.bucket, file.thumbnailAccessKey);
+ await minio.removeObject(config.drive!.bucket!, file.thumbnailAccessKey!);
}
if (file.webpublicUrl) {
- await minio.removeObject(config.drive.bucket, file.webpublicAccessKey);
+ await minio.removeObject(config.drive!.bucket!, file.webpublicAccessKey!);
}
}
// リモートファイル期限切れ削除後は直リンクにする
- if (isExpired && file.userHost !== null) {
+ if (isExpired && file.userHost !== null && file.uri != null) {
DriveFiles.update(file.id, {
isLink: true,
url: file.uri,
diff --git a/src/services/drive/image-processor.ts b/src/services/drive/image-processor.ts
index 3c538390b0..89ac331ca1 100644
--- a/src/services/drive/image-processor.ts
+++ b/src/services/drive/image-processor.ts
@@ -2,7 +2,7 @@ import * as sharp from 'sharp';
export type IImage = {
data: Buffer;
- ext: string;
+ ext: string | null;
type: string;
};
diff --git a/src/services/drive/upload-from-url.ts b/src/services/drive/upload-from-url.ts
index a7fe1fbd26..bfe8c5c3b2 100644
--- a/src/services/drive/upload-from-url.ts
+++ b/src/services/drive/upload-from-url.ts
@@ -1,4 +1,3 @@
-import * as URL from 'url';
import create from './add-file';
import { User } from '../../models/entities/user';
import { driveLogger } from './logger';
@@ -13,14 +12,14 @@ const logger = driveLogger.createSubLogger('downloader');
export default async (
url: string,
user: User,
- folderId: DriveFolder['id'] = null,
- uri: string = null,
+ folderId: DriveFolder['id'] | null = null,
+ uri: string | null = null,
sensitive = false,
force = false,
link = false
): Promise<DriveFile> => {
- let name = URL.parse(url).pathname.split('/').pop();
- if (!DriveFiles.validateFileName(name)) {
+ let name = new URL(url).pathname.split('/').pop() || null;
+ if (name == null || !DriveFiles.validateFileName(name)) {
name = null;
}
@@ -50,6 +49,6 @@ export default async (
if (error) {
throw error;
} else {
- return driveFile;
+ return driveFile!;
}
};