Sveltekit使用adapter-node适配器上传文件失败的解决办法
在sveltekit上传文件的时候如果使用adapter-node并且通过Api Endpoint中转发往Api服务器需要注意BODY_SIZE_LIMIT
变量,由于该值默认只有512KB,因此所有超过该值的文件都无法上传。
BODY_SIZE_LIMIT
流式传输时接受的最大请求正文大小(以字节为单位)。正文大小也可以用千字节 ( K)、兆字节 ( M) 或千兆字节 ( G) 的单位后缀来指定。例如,512K或1M。默认为 512kb
。您可以使用值Infinity
(旧版本的适配器中为 0)禁用此选项,并实现自定义检查(handle如果您需要更高级的功能)。
https://svelte.dev/docs/kit/adapter-node#environment-variables-body-size-limit
除此之外,您还应该注意
- sveltekit端nginx的
client_max_body_size
参数 - Api服务端的nginx及相关应用的上传限制参数,以directus为例,需要注意FILES_MAX_UPLOAD_SIZE参数。