大家好,希望请教大家一个问题 这是我的目录结构,里面有一个大于 50MB 的静态文件
//省略
app.py
assets/data.json # 大于 50MB
这是 app.py 里面的涉及到静态文件的细节
data = os.path.join(base_dir, "assets", "data.json")
在部署的时候,vercel 提示说: serverless function exceeds maximum size limit of 50mb
想请问下该怎么在 vercel 里面包含超过 50MB 的静态文件呢? 或者有什么更好的方法避免这一问题吗?
谢谢
1
eason1874 2022-10-02 12:50:47 +08:00
好像是上传源码包最大 50MB ,解压后最大 250MB
可以尝试压缩它,在部署代码里解压再加载 |
3
Track13 2022-10-02 13:17:02 +08:00 via Android
往死里薅是吧?
|
8
qfdk 2022-10-02 14:04:31 +08:00 via iPhone
@Doragd 这样明确了 你可以分开两个工程 一个最为静态资源 zip 一下 然后上传完 unzip. 原工程的静态资源指向这里. 方便替换静态资源而不中断服务
|
10
SunsetShimmer 2022-10-02 14:13:52 +08:00
Vercel 免费版有运行时间 10s 限制,但 500 一概不是因为这个。
能不能 try 一下,把 traceback 返回来? |
11
SunsetShimmer 2022-10-02 14:14:04 +08:00
@SunsetShimmer *应该
|
12
changwei 2022-10-02 14:25:13 +08:00 via Android 1
把这个静态资源放到公有云 oss 里面比较好,马上双十一各大云也有优惠包可以蹲一下
|
13
SorcererXW 2022-10-02 15:21:51 +08:00
json 压缩空间还是很大的,比如换成二进制 protobuf/msgpack 、gzip 压缩
|
14
QingStone 2022-10-02 17:02:50 +08:00 via iPhone
假如涉及到会处理这个文件,那么时间超长,也会导致响应超时。
|
15
kkocdko 2022-10-02 17:25:51 +08:00
回 14 楼:建议压缩,用个解压快一点的算法,lz4/zstd 什么的。
另外毕竟人家免费的服务,还是善良一点比较好。 |
16
docx 2022-10-02 17:42:38 +08:00 via iPhone
如果这是符合使用条款的倒也没啥
不过我还是倾向于找个对象存储丢上去,免费的也可以 |
17
wxf666 2022-10-02 21:46:19 +08:00
|
20
Doragd OP @SunsetShimmer 谢谢,很有可能运行超时了 qwq
|
22
SunsetShimmer 2022-10-07 19:35:12 +08:00
@Doragd 如果超时,返回的是 Vercel 的错误页(如果有 Cloudflare 什么的,可能是 CDN 的错误页),Vercel 报错是 504: GATEWAY_TIMEOUT Code: FUNCTION_INVOCATION_TIMEOUT ,会提示 This Serverless Function has timed out.
|
23
Doragd OP @SunsetShimmer 谢谢您,好像报的是 This Serverless Function has timed out.
|