Commit bebe2138 by Archer Committed by GitHub

perf: read file internal (#5282)

parent 5c95fa2b
......@@ -27,6 +27,7 @@ import type { StoreSecretValueType } from '@fastgpt/global/common/secret/type';
import { addLog } from '../../../../common/system/log';
import { SERVICE_LOCAL_HOST } from '../../../../common/system/tools';
import { formatHttpError } from '../utils';
import { isInternalAddress } from '../../../../common/system/utils';
type PropsArrType = {
key: string;
......@@ -414,6 +415,10 @@ async function fetchData({
params: Record<string, any>;
timeout: number;
}) {
if (isInternalAddress(url)) {
return Promise.reject('Url is invalid');
}
const { data: response } = await axios({
method,
baseURL: `http://${SERVICE_LOCAL_HOST}`,
......
......@@ -15,6 +15,7 @@ import { addLog } from '../../../../common/system/log';
import { addRawTextBuffer, getRawTextBuffer } from '../../../../common/buffer/rawText/controller';
import { addMinutes } from 'date-fns';
import { getNodeErrResponse } from '../utils';
import { isInternalAddress } from '../../../../common/system/utils';
type Props = ModuleDispatchProps<{
[NodeInputKeyEnum.fileUrlList]: string[];
......@@ -175,6 +176,9 @@ export const getFileContentFromLinks = async ({
}
try {
if (isInternalAddress(url)) {
return Promise.reject('Url is invalid');
}
// Get file buffer data
const response = await axios.get(url, {
baseURL: serverRequestBaseUrl,
......
import type { ApiRequestProps, ApiResponseType } from '@fastgpt/service/type/next';
import { NextAPI } from '@/service/middleware/entry';
import * as fs from 'fs';
import { authCert } from '@fastgpt/service/support/permission/auth/common';
export type writefileQuery = {};
export type writefileBody = {
name: string;
content: string;
};
export type writefileResponse = {};
async function handler(
req: ApiRequestProps<writefileBody, writefileQuery>,
res: ApiResponseType<any>
): Promise<writefileResponse> {
await authCert({ req, authRoot: true });
const { name, content } = req.body;
await fs.promises.writeFile(`public/${name}`, content);
return {};
}
export default NextAPI(handler);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment