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

2022 年 10 月 2 日
 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 的静态文件呢? 或者有什么更好的方法避免这一问题吗?

谢谢

2932 次点击
所在节点    问与答
23 条回复
eason1874
2022 年 10 月 2 日
好像是上传源码包最大 50MB ,解压后最大 250MB

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

不过我还是倾向于找个对象存储丢上去,免费的也可以
wxf666
2022 年 10 月 2 日
@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 月 7 日
@wxf666 谢谢您~我试试呢
Doragd
2022 年 10 月 7 日
@QingStone 原来如此,谢谢您呜呜呜
Doragd
2022 年 10 月 7 日
@SunsetShimmer 谢谢,很有可能运行超时了 qwq

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

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

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

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

© 2021 V2EX