如何在 vercel 里面包含超过 50MB 的静态文件

2022-10-02 12:42:05 +08:00
 Doragd

大家好,希望请教大家一个问题 这是我的目录结构,里面有一个大于 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 的静态文件呢? 或者有什么更好的方法避免这一问题吗?

谢谢

2314 次点击
所在节点    问与答
23 条回复
eason1874
2022-10-02 12:50:47 +08:00
好像是上传源码包最大 50MB ,解压后最大 250MB

可以尝试压缩它,在部署代码里解压再加载
Doragd
2022-10-02 12:53:04 +08:00
@eason1874 感谢呜呜呜!!
Track13
2022-10-02 13:17:02 +08:00
往死里薅是吧?
Doragd
2022-10-02 13:36:28 +08:00
@Track13 您好~是这样的,我的网站里面确实涉及到了这么大的静态文件,并非是为了作为其他用途,谢谢
qfdk
2022-10-02 13:52:09 +08:00
@Doragd 分成两个文件呗
Doragd
2022-10-02 13:59:31 +08:00
@qfdk 谢谢回复,应该是整体大小不超过 50MB
Doragd
2022-10-02 13:59:49 +08:00
@eason1874 发现不会报错了,但是还是 500 错误 2333
qfdk
2022-10-02 14:04:31 +08:00
@Doragd 这样明确了 你可以分开两个工程 一个最为静态资源 zip 一下 然后上传完 unzip. 原工程的静态资源指向这里. 方便替换静态资源而不中断服务
Doragd
2022-10-02 14:07:37 +08:00
@qfdk 尝试过压缩再解压,deploy 过程不会报错了,但是还是提示 500qwq
SunsetShimmer
2022-10-02 14:13:52 +08:00
Vercel 免费版有运行时间 10s 限制,但 500 一概不是因为这个。
能不能 try 一下,把 traceback 返回来?
SunsetShimmer
2022-10-02 14:14:04 +08:00
@SunsetShimmer *应该
changwei
2022-10-02 14:25:13 +08:00
把这个静态资源放到公有云 oss 里面比较好,马上双十一各大云也有优惠包可以蹲一下
SorcererXW
2022-10-02 15:21:51 +08:00
json 压缩空间还是很大的,比如换成二进制 protobuf/msgpack 、gzip 压缩
QingStone
2022-10-02 17:02:50 +08:00
假如涉及到会处理这个文件,那么时间超长,也会导致响应超时。
kkocdko
2022-10-02 17:25:51 +08:00
回 14 楼:建议压缩,用个解压快一点的算法,lz4/zstd 什么的。
另外毕竟人家免费的服务,还是善良一点比较好。
docx
2022-10-02 17:42:38 +08:00
如果这是符合使用条款的倒也没啥

不过我还是倾向于找个对象存储丢上去,免费的也可以
wxf666
2022-10-02 21:46:19 +08:00
@kkocdko 确实。拿了个 ~/.conda/pkgs/cache/e5e4a514.json ( 64.8 MB )试了下

- lzma 极限压缩后 7.14 MB ,解压时间为 0.7 s
- zstd 极限压缩后 7.26 MB ,解压时间为 0.1 s


@Doragd 或者,考虑用 pickle 存?文件又小,速度又快

上述文件用 pickle 存后,只需 35.1 MB 了

lzma 极限压缩后 7.06 MB ,zstd 极限压缩后 7.68 MB
Doragd
2022-10-07 15:48:01 +08:00
@wxf666 谢谢您~我试试呢
Doragd
2022-10-07 15:48:20 +08:00
@QingStone 原来如此,谢谢您呜呜呜
Doragd
2022-10-07 15:48:48 +08:00
@SunsetShimmer 谢谢,很有可能运行超时了 qwq

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/884346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX