Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

upload larger file through apigee proxy

Hi there, 

Could anyone please help me to solve the payload limit to 10 MB exceeds when we upload a file through apigee.

I understood we can have streaming option but streaming is not working for file size like 25MB 

next we have signed url to upload larger file but using signed url how to upload multiple files at a same time and also signedurl we need two endpoints inorder to upload a single file 

please give some suggestion on the above issue my requirement is I need to upload multiple files which is more than 10MB through apigee

Solved Solved
0 8 3,499
1 ACCEPTED SOLUTION

For generating signed url I am able to follow your youtube link and generate and also tried uploading the object.

OK, great!

I need some help for my current requirement... actually my organization requirement is using postman with single request we need to upload a big file through apigee.

There are limits to the ize of the payload you may pass through Apigee for a single API call. you cannot satisfy that requirement as stated ("we need to upload a big file through Apigee"), if "Big" implies "greater than 10mb payload". Check the documented product limits for more information on this.

Based on my understanding if I upload before generating signedurl apigee will throw payload limit exceeds error ...

Correct. (try it!)

...so first we need to generate signed url and then using that url we need to upload the object, which could not be done using single request.

Yes. I think you've got it. The idea is that for larger files, you can use Apigee to "broker" the upload. The actual upload does not go through Apigee, but if you have a second system, like Google Cloud storage (GCS), that accepts signed URLs, then you can use Apigee to generate an authenticated time-limited unique URL, that the client app would use to upload its large data. Apigee can generate the signed URL, send it back to the client, then the client can use that URL (pointing to storage.googleapis.com), to upload its large data. Therefore there are at least 2 requests: one from the client to Apigee to request the signed URL, and the 2nd from the client to storage.googleapis.com, to upload the large payload. I say "at least 2" because in the general case, the client may use multiple requests to storage.googleapis.com to upload a very large file. So it is more correct to say "at least 2 requests".

It's not necessary to use GCS for the 2nd system. You can use AWS S3, or some other storage system that you own and operate. The key thing is that second system is not "behind" Apigee. It's got its own endpoint.

please clarify if there is a way to upload a big file through apigee in a single request

In case this is still not clear: there is not. There is a limit to the size of the payload you may pass through Apigee. This limit is documented. The "signed URL" pattern (reviewed here in a YT screencast video) is a way to workaround the limit, but using that pattern, (a) there are at least two requests, not one, and (b) the upload does not pass through Apigee.

View solution in original post

8 REPLIES 8