Commit 423607ab by Ryo Committed by GitHub

chore: add skip file type check env (#6839)

parent 1cb67b38
...@@ -4,6 +4,7 @@ import path from 'node:path'; ...@@ -4,6 +4,7 @@ import path from 'node:path';
import type { UploadConstraints } from '../contracts/type'; import type { UploadConstraints } from '../contracts/type';
import { DEFAULT_CONTENT_TYPE, resolveMimeType } from '../utils/mime'; import { DEFAULT_CONTENT_TYPE, resolveMimeType } from '../utils/mime';
import { normalizeAllowedExtensions, normalizeFileExtension } from '../utils/uploadConstraints'; import { normalizeAllowedExtensions, normalizeFileExtension } from '../utils/uploadConstraints';
import { env } from '../../../env';
const defaultInspectBytes = 8192; const defaultInspectBytes = 8192;
const officeZipInspectBytes = 64 * 1024; const officeZipInspectBytes = 64 * 1024;
...@@ -171,6 +172,14 @@ export async function validateUploadFile({ ...@@ -171,6 +172,14 @@ export async function validateUploadFile({
extension, extension,
uploadConstraints uploadConstraints
}); });
if (env.SKIP_FILE_TYPE_CHECK) {
return {
filename: normalizedFileName,
contentType: expectedMime
};
}
const detected = await fileTypeFromBuffer(buffer).catch((error) => { const detected = await fileTypeFromBuffer(buffer).catch((error) => {
if (error?.name === 'EndOfStreamError' || error?.message === 'End-Of-Stream') { if (error?.name === 'EndOfStreamError' || error?.message === 'End-Of-Stream') {
return undefined; return undefined;
......
import { createEnv } from '@t3-oss/env-core'; import { createEnv } from '@t3-oss/env-core';
import z from 'zod'; import z from 'zod';
const truthyBoolStrs = ['true', '1', 'yes', 'y'];
const BoolSchema = z const BoolSchema = z
.string() .string()
.transform((val) => val === 'true') .transform((val) => truthyBoolStrs.includes(val.toLowerCase()))
.pipe(z.boolean()); .pipe(z.boolean());
const NumSchema = z.coerce.number<number>(); const NumSchema = z.coerce.number<number>();
...@@ -17,6 +18,7 @@ const StorageCosProtocolSchema = z.enum(['https:', 'http:']); ...@@ -17,6 +18,7 @@ const StorageCosProtocolSchema = z.enum(['https:', 'http:']);
export const env = createEnv({ export const env = createEnv({
server: { server: {
FILE_TOKEN_KEY: z.string().min(6, 'FILE_TOKEN_KEY must be at least 6 characters'), FILE_TOKEN_KEY: z.string().min(6, 'FILE_TOKEN_KEY must be at least 6 characters'),
// ===== Agent sandbox ===== // ===== Agent sandbox =====
AGENT_SANDBOX_PROVIDER: z.enum(['sealosdevbox', 'opensandbox', 'e2b']).optional(), AGENT_SANDBOX_PROVIDER: z.enum(['sealosdevbox', 'opensandbox', 'e2b']).optional(),
AGENT_SANDBOX_E2B_API_KEY: z.string().optional(), AGENT_SANDBOX_E2B_API_KEY: z.string().optional(),
...@@ -124,7 +126,9 @@ export const env = createEnv({ ...@@ -124,7 +126,9 @@ export const env = createEnv({
SHOW_SKILL: BoolSchema.default(false), SHOW_SKILL: BoolSchema.default(false),
// Agent engine selection: 'default' uses the built-in Plan+Step engine, 'pi' uses pi-agent-core // Agent engine selection: 'default' uses the built-in Plan+Step engine, 'pi' uses pi-agent-core
AGENT_ENGINE: z.enum(['default', 'pi']).default('default') AGENT_ENGINE: z.enum(['default', 'pi']).default('default'),
SKIP_FILE_TYPE_CHECK: BoolSchema.default(false)
}, },
emptyStringAsUndefined: true, emptyStringAsUndefined: true,
runtimeEnv: process.env, runtimeEnv: process.env,
......
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