I keep getting this error "client intended to send too large body: 34386203 bytes" every time I try to upload a batch of files through a nodejs web server hosted on App engine. The files upload successfully on a local server, but fails on the remote server. Each file is about 9mb max, and there are 4 of them making it about 34mb approximately. The app engine is also on a flex environment.
CodePudding user response:
The App Engine frontend has some limitaions, listed on its documentation.
The total size of the request is limited to ~32MB.
It might be a hard limitaion.
If it is suitable, consider:
- generate cloud storage signed URL
- wrap up with firebase cloud storage
CodePudding user response:
- This has been answered on the issue tracker :
https://issuetracker.google.com/112810617 - App Engine has a request limit upto 32MB mentioned here : https://cloud.google.com/appengine/docs/flexible/nodejs/how-requests-are-handled#request_limits
- Direct uploads are limited to 32MB as per :
https://cloud.google.com/appengine/quotas#Code.
For larger uploads the recommended way is to use the
- Blobstore interface which has by default first 5 GB free and with no maximum as per this documentation.
- Send the requests directly to Cloud Storage, for instance using the resumable upload process. You can still use App Engine to serve your app but the upload would be handled by Google Cloud Storage. For this you would have generated a signed URL which the client can use to gain access to your Cloud Storage bucket.
- In all languages except Go, no single static data file can be larger than 32MB. The limit for Go is 64MB as per the below documentation. So you can try out the Go runtime for your application if you really want to upload batch files through a Nodejs server hosted on App Engine. https://cloud.google.com/appengine/quotas#Code
CodePudding user response:
Cloud Run has a limit on response and request size of 32MB. This contains usage quota and limits that apply when using Cloud Run.