【今日 Next.js 小课堂】分享两个 Next.js 文件上传功能的经验
1、Next.js 官方现在推荐表单类请求用 server actions 实现,不过 server actions 的 body 大小默认限制是 1MB,对于文件上传功能可能不够用(如果你没有测试大文件估计不会发现这个问题)。
解决方法有两个:
1️⃣next.config.js 里面配置 bodySizeLimit
2️⃣写一个 route.ts,用 fetch 完成上传
这边建议使用 route.ts 实现,不要因为一个功能把其他 server actions 的风险放大。
2、很多人不知道什么时候用 Edge Runtime,其实上传文件到 CloudFlare R2 就是优势场景之一。CloudFlare 的节点遍布全球,使用 Edge Runtime 可以找到最近的节点上传文件,上传效率更高。
Nexty.dev 的 CMS 功能终于快完成了,支持的特性比所有模板都丰富(p2),预计周二上线,欢迎围观。