fix(media): پیشچک آپلود روی سقف واقعی CDN (۱۸MB) — WCDN بدنههای ~۲۰MB+ را قطع میکند
This commit is contained in:
@@ -3,8 +3,9 @@ import { API_URL } from '../config'
|
|||||||
|
|
||||||
const TOKEN_KEY = 'aramesh_admin_token'
|
const TOKEN_KEY = 'aramesh_admin_token'
|
||||||
|
|
||||||
/** سقف آپلود — هماندازهٔ media_max_upload_mb بکاند (تنظیمات) */
|
/** سقف عملی آپلود — CDN (WCDN) بدنههای بالای ~۱۹ مگابایت را قطع میکند؛
|
||||||
const MAX_UPLOAD_BYTES = 25 * 1024 * 1024
|
* بکاند ۲۵ و لبه ۳۰ اجازه میدهد تا با بالا بردن سقف CDN همینجا تنظیم شود */
|
||||||
|
const MAX_UPLOAD_BYTES = 18 * 1024 * 1024
|
||||||
|
|
||||||
/** رویداد تغییر وضعیت ورود — لایههای دیگر (مثل نوار ادمین) با آن همگام میمانند */
|
/** رویداد تغییر وضعیت ورود — لایههای دیگر (مثل نوار ادمین) با آن همگام میمانند */
|
||||||
export const AUTH_CHANGE_EVENT = 'aramesh:auth-change'
|
export const AUTH_CHANGE_EVENT = 'aramesh:auth-change'
|
||||||
@@ -47,7 +48,7 @@ async function authFetch<T>(path: string, options: RequestInit = {}): Promise<T>
|
|||||||
typeof data?.detail === 'string'
|
typeof data?.detail === 'string'
|
||||||
? data.detail
|
? data.detail
|
||||||
: res.status === 413
|
: res.status === 413
|
||||||
? 'حجم فایل بیش از حد مجاز است (حداکثر ۲۵ مگابایت)'
|
? 'حجم فایل بیش از حد مجاز است'
|
||||||
: res.status === 409
|
: res.status === 409
|
||||||
? 'رکوردی با این مقدار تکراری وجود دارد'
|
? 'رکوردی با این مقدار تکراری وجود دارد'
|
||||||
: 'خطا در ذخیرهسازی — دوباره تلاش کنید'
|
: 'خطا در ذخیرهسازی — دوباره تلاش کنید'
|
||||||
@@ -93,9 +94,9 @@ export const adminApi = {
|
|||||||
authFetch<T[]>(`/api/admin/${resource}/reorder`, { method: 'POST', body: JSON.stringify({ ids }) }),
|
authFetch<T[]>(`/api/admin/${resource}/reorder`, { method: 'POST', body: JSON.stringify({ ids }) }),
|
||||||
|
|
||||||
upload: async (file: File, name?: string): Promise<{ url: string; key: string }> => {
|
upload: async (file: File, name?: string): Promise<{ url: string; key: string }> => {
|
||||||
// پیشچک سمت کاربر — خطای ۴۱۳ لبه/CDN بهصورت صفحه HTML میرسد و پیام خاص از دست میرود
|
// پیشچک سمت کاربر — بدنههای بزرگتر از سقف CDN بیپاسخ قطع میشوند و ۴۱۳ لبه بهصورت HTML میرسد
|
||||||
if (file.size > MAX_UPLOAD_BYTES) {
|
if (file.size > MAX_UPLOAD_BYTES) {
|
||||||
throw new HttpError(413, 'حجم فایل بیش از ۲۵ مگابایت است — فایل را کوچکتر کنید')
|
throw new HttpError(413, 'حجم فایل بیش از ۱۸ مگابایت است — فایل را کوچکتر کنید')
|
||||||
}
|
}
|
||||||
const fd = new FormData()
|
const fd = new FormData()
|
||||||
fd.append('file', file)
|
fd.append('file', file)
|
||||||
|
|||||||
Reference in New Issue
Block a user