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

How can I support a payload larger than 10mb, in Apigee? (This is a multipart/form request)

Hi @dchiesa1 ,

I have a usecase where client is sending the Multi-part form data request to the proxy , After authorization the call should be redirect to the targetServer.

.....
--form 'body="{\"key1\":\"value1\"}";type=application/json' \
--form 'docs=@"/Users/fzd/Downloads/100mb.pdf"' \
--form 'docs=@"/Users/fzd/Downloads/response.pdf"'
 
Could you please suggest me how can I use the signedUrl in that case ?
 
Thanks 
Ashwani
 

 

Solved Solved
0 5 582
1 ACCEPTED SOLUTION

The problem we are facing from our end is since the proxy doesn't support the documents more than 10 mb , we are unable to process that request and we don't have any control on redesigning the Client's API.

So what we can do at proxy level to process that request and send it to the Target server ?

You are explaining the situation very clearly. The requirements are not satisfiable as stated. You know that Apigee has a limitation on the payload of 10mb. You are saying that the client app cannot be changed. These two constraints are in conflict. You cannot solve that without modifying or dropping one of those constraints.

Either don't use Apigee, or change the Client API.  

View solution in original post

5 REPLIES 5

hi

I understand that the client is sending in a multipart/form-data message to Apigee. 

Then understand you would like to proxy to some target server.  I am not sure what you want to do with signed URLs.  You asked "how to use signed URLs?"  But I am not clear on what problem you are solving.   Can you explain in more detail what your requirement is? 

@dchiesa1 - Problem is documents sizes that are more than 10 mb, enabling the request/response streams at proxy and target endpoint allow me to send documents for more than 10 MB to the target server.

Instead of streaming if i would like to use the SignedUrl how can i use it in that case because one part i need to send as application/json and another part is going to be attachments(more than one)  and size greater than 10 MB .

In short , problem statement is send a multipart request to the target server where one part is application/json and another part is attachments ( more than 10 MB).

 

send a multipart request to the target server where one part is application/json and another part is attachments ( more than 10 MB).

ok that is a very different problem statement than I understood from your original post.

As you know, Apigee doesn't handle payloads that are larger than 10mb. You're exceeding the defined limits of the platform when you try to do that. I advise against it.

I still don't understand why there are signed urls involved here. Maybe you could take a step back and explain what you are trying to accomplish at a higher level - something higher than "I want to use signedurl for each part in a multipart message". Step up a level and maybe explain the consuming app, and what they are sending, and why it needs to be multipart, and why you believe a data payload larger than 10mb needs to go through Apigee? 

@dchiesa1 - Thanks for your response, At high level client has an api running on their target server which accept multipart json and attachements more than 10 MB.

They want to integrate that API with our platform so all the calls going to that API should go though the Proxy defined at our platform for Authorization.

The problem we are facing from our end is since the proxy doesn't support the documents more than 10 mb , we are unable to process that request and we don't have any control on redesigning the Client's API.

So what we can do at proxy level to process that request and send it to the Target server ? 

 

 

 

The problem we are facing from our end is since the proxy doesn't support the documents more than 10 mb , we are unable to process that request and we don't have any control on redesigning the Client's API.

So what we can do at proxy level to process that request and send it to the Target server ?

You are explaining the situation very clearly. The requirements are not satisfiable as stated. You know that Apigee has a limitation on the payload of 10mb. You are saying that the client app cannot be changed. These two constraints are in conflict. You cannot solve that without modifying or dropping one of those constraints.

Either don't use Apigee, or change the Client API.