feat(upload): compress images over 10MB before OSS upload (v3.4.13)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-05 22:48:34 +08:00
parent bd1930f6b1
commit fa6fb80d19
15 changed files with 196 additions and 25 deletions
+10 -1
View File
@@ -1,5 +1,10 @@
import { apiBase } from './api';
import { getStoreProfile } from './api';
import {
compressImageFileIfNeeded,
DEFAULT_OSS_MAX_UPLOAD_BYTES,
formatOssMaxSizeMb,
} from '@dukang/shared-ui/compressImage';
const UPLOAD_TIMEOUT_MS = 120_000;
@@ -16,8 +21,12 @@ export type RegisteredResource = {
};
export async function uploadFileToOss(file: File, bizType: string): Promise<UploadFileResult> {
const compressed = await compressImageFileIfNeeded(file);
if (compressed.size > DEFAULT_OSS_MAX_UPLOAD_BYTES) {
throw new Error(`图片压缩后仍超过 ${formatOssMaxSizeMb()}MB,请换一张较小的图片`);
}
const formData = new FormData();
formData.append('file', file);
formData.append('file', compressed);
formData.append('bizType', bizType);
formData.append('mediaType', 'IMAGE');