summaryrefslogtreecommitdiff
path: root/packages/backend/src/services/drive
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2022-01-23 22:52:35 +0900
committerGitHub <noreply@github.com>2022-01-23 22:52:35 +0900
commit7aecf15f9473ceafc625c07f69241a37bd61ecbf (patch)
treee62d3f1360b8e3f73ef09eb124af477d9fdffba2 /packages/backend/src/services/drive
parentUnifying Misskey-specific IRIs in JSON-LD `@context` Resolve #8116 (#8178) (diff)
downloadmisskey-7aecf15f9473ceafc625c07f69241a37bd61ecbf.tar.gz
misskey-7aecf15f9473ceafc625c07f69241a37bd61ecbf.tar.bz2
misskey-7aecf15f9473ceafc625c07f69241a37bd61ecbf.zip
refactor, enhance: ドライブ引数のオブジェクト化, 追加時のcomment指定 (#8180)
* refactor: ドライブの引数をオブジェクト化する Resolve #8177 * Resolve #8181 * fix * archivePath
Diffstat (limited to 'packages/backend/src/services/drive')
-rw-r--r--packages/backend/src/services/drive/add-file.ts58
-rw-r--r--packages/backend/src/services/drive/upload-from-url.ts29
2 files changed, 55 insertions, 32 deletions
diff --git a/packages/backend/src/services/drive/add-file.ts b/packages/backend/src/services/drive/add-file.ts
index 9de4465eb9..a89e068f45 100644
--- a/packages/backend/src/services/drive/add-file.ts
+++ b/packages/backend/src/services/drive/add-file.ts
@@ -297,33 +297,45 @@ async function deleteOldFile(user: IRemoteUser) {
}
}
+type AddFileArgs = {
+ /** User who wish to add file */
+ user: { id: User['id']; host: User['host'] } | null;
+ /** File path */
+ path: string;
+ /** Name */
+ name?: string | null;
+ /** Comment */
+ comment?: string | null;
+ /** Folder ID */
+ folderId?: any;
+ /** If set to true, forcibly upload the file even if there is a file with the same hash. */
+ force?: boolean;
+ /** Do not save file to local */
+ isLink?: boolean;
+ /** URL of source (URLからアップロードされた場合(ローカル/リモート)の元URL) */
+ url?: string | null;
+ /** URL of source (リモートインスタンスのURLからアップロードされた場合の元URL) */
+ uri?: string | null;
+ /** Mark file as sensitive */
+ sensitive?: boolean | null;
+};
+
/**
* Add file to drive
*
- * @param user User who wish to add file
- * @param path File path
- * @param name Name
- * @param comment Comment
- * @param folderId Folder ID
- * @param force If set to true, forcibly upload the file even if there is a file with the same hash.
- * @param isLink Do not save file to local
- * @param url URL of source (URLからアップロードされた場合(ローカル/リモート)の元URL)
- * @param uri URL of source (リモートインスタンスのURLからアップロードされた場合の元URL)
- * @param sensitive Mark file as sensitive
- * @return Created drive file
*/
-export async function addFile(
- user: { id: User['id']; host: User['host'] } | null,
- path: string,
- name: string | null = null,
- comment: string | null = null,
- folderId: any = null,
- force: boolean = false,
- isLink: boolean = false,
- url: string | null = null,
- uri: string | null = null,
- sensitive: boolean | null = null
-): Promise<DriveFile> {
+export async function addFile({
+ user,
+ path,
+ name = null,
+ comment = null,
+ folderId = null,
+ force = false,
+ isLink = false,
+ url = null,
+ uri = null,
+ sensitive = null
+}: AddFileArgs): Promise<DriveFile> {
const info = await getFileInfo(path);
logger.info(`${JSON.stringify(info)}`);
diff --git a/packages/backend/src/services/drive/upload-from-url.ts b/packages/backend/src/services/drive/upload-from-url.ts
index a723c3e9ac..7c5fa5ce3f 100644
--- a/packages/backend/src/services/drive/upload-from-url.ts
+++ b/packages/backend/src/services/drive/upload-from-url.ts
@@ -10,16 +10,27 @@ import { DriveFiles } from '@/models/index';
const logger = driveLogger.createSubLogger('downloader');
-export default async (
- url: string,
- user: { id: User['id']; host: User['host'] } | null,
- folderId: DriveFolder['id'] | null = null,
- uri: string | null = null,
+type Args = {
+ url: string;
+ user: { id: User['id']; host: User['host'] } | null;
+ folderId?: DriveFolder['id'] | null;
+ uri?: string | null;
+ sensitive?: boolean;
+ force?: boolean;
+ isLink?: boolean;
+ comment?: string | null;
+};
+
+export async function uploadFromUrl({
+ url,
+ user,
+ folderId = null,
+ uri = null,
sensitive = false,
force = false,
- link = false,
+ isLink = false,
comment = null
-): Promise<DriveFile> => {
+}: Args): Promise<DriveFile> {
let name = new URL(url).pathname.split('/').pop() || null;
if (name == null || !DriveFiles.validateFileName(name)) {
name = null;
@@ -41,7 +52,7 @@ export default async (
let error;
try {
- driveFile = await addFile(user, path, name, comment, folderId, force, link, url, uri, sensitive);
+ driveFile = await addFile({ user, path, name, comment, folderId, force, isLink, url, uri, sensitive });
logger.succ(`Got: ${driveFile.id}`);
} catch (e) {
error = e;
@@ -59,4 +70,4 @@ export default async (
} else {
return driveFile!;
}
-};
+}