mirror of
https://github.com/labring/FastGPT.git
synced 2025-10-16 16:04:34 +00:00
perf: read file internal (#5282)
This commit is contained in:
@@ -27,6 +27,7 @@ import type { StoreSecretValueType } from '@fastgpt/global/common/secret/type';
|
|||||||
import { addLog } from '../../../../common/system/log';
|
import { addLog } from '../../../../common/system/log';
|
||||||
import { SERVICE_LOCAL_HOST } from '../../../../common/system/tools';
|
import { SERVICE_LOCAL_HOST } from '../../../../common/system/tools';
|
||||||
import { formatHttpError } from '../utils';
|
import { formatHttpError } from '../utils';
|
||||||
|
import { isInternalAddress } from '../../../../common/system/utils';
|
||||||
|
|
||||||
type PropsArrType = {
|
type PropsArrType = {
|
||||||
key: string;
|
key: string;
|
||||||
@@ -414,6 +415,10 @@ async function fetchData({
|
|||||||
params: Record<string, any>;
|
params: Record<string, any>;
|
||||||
timeout: number;
|
timeout: number;
|
||||||
}) {
|
}) {
|
||||||
|
if (isInternalAddress(url)) {
|
||||||
|
return Promise.reject('Url is invalid');
|
||||||
|
}
|
||||||
|
|
||||||
const { data: response } = await axios({
|
const { data: response } = await axios({
|
||||||
method,
|
method,
|
||||||
baseURL: `http://${SERVICE_LOCAL_HOST}`,
|
baseURL: `http://${SERVICE_LOCAL_HOST}`,
|
||||||
|
@@ -15,6 +15,7 @@ import { addLog } from '../../../../common/system/log';
|
|||||||
import { addRawTextBuffer, getRawTextBuffer } from '../../../../common/buffer/rawText/controller';
|
import { addRawTextBuffer, getRawTextBuffer } from '../../../../common/buffer/rawText/controller';
|
||||||
import { addMinutes } from 'date-fns';
|
import { addMinutes } from 'date-fns';
|
||||||
import { getNodeErrResponse } from '../utils';
|
import { getNodeErrResponse } from '../utils';
|
||||||
|
import { isInternalAddress } from '../../../../common/system/utils';
|
||||||
|
|
||||||
type Props = ModuleDispatchProps<{
|
type Props = ModuleDispatchProps<{
|
||||||
[NodeInputKeyEnum.fileUrlList]: string[];
|
[NodeInputKeyEnum.fileUrlList]: string[];
|
||||||
@@ -175,6 +176,9 @@ export const getFileContentFromLinks = async ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if (isInternalAddress(url)) {
|
||||||
|
return Promise.reject('Url is invalid');
|
||||||
|
}
|
||||||
// Get file buffer data
|
// Get file buffer data
|
||||||
const response = await axios.get(url, {
|
const response = await axios.get(url, {
|
||||||
baseURL: serverRequestBaseUrl,
|
baseURL: serverRequestBaseUrl,
|
||||||
|
@@ -1,25 +0,0 @@
|
|||||||
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);
|
|
Reference in New Issue
Block a user