Files
FrozenFriendsYume/packages/backend/built/server/api/endpoints/drive/files/upload-from-url.js
T
2026-07-26 18:35:26 +09:00

73 lines
1.8 KiB
JavaScript

import { uploadFromUrl } from "../../../../../services/drive/upload-from-url.js";
import define from "../../../define.js";
import { DriveFiles } from "../../../../../models/index.js";
import { publishMainStream } from "../../../../../services/stream.js";
import { HOUR } from "../../../../../const.js";
export const meta = {
tags: [
"drive"
],
limit: {
duration: HOUR,
max: 60
},
description: "Request the server to download a new drive file from the specified URL.",
requireCredential: true,
kind: "write:drive"
};
export const paramDef = {
type: "object",
properties: {
url: {
type: "string"
},
folderId: {
type: "string",
format: "misskey:id",
nullable: true,
default: null
},
isSensitive: {
type: "boolean",
default: false
},
comment: {
type: "string",
nullable: true,
maxLength: 512,
default: null
},
marker: {
type: "string",
nullable: true,
default: null
},
force: {
type: "boolean",
default: false
}
},
required: [
"url"
]
};
export default define(meta, paramDef, async (ps, user)=>{
uploadFromUrl({
url: ps.url,
user,
folderId: ps.folderId,
sensitive: ps.isSensitive,
force: ps.force,
comment: ps.comment
}).then((file)=>{
DriveFiles.pack(file, {
self: true
}).then((packedFile)=>{
publishMainStream(user.id, "urlUploadFinished", {
marker: ps.marker,
file: packedFile
});
});
});
});