XSLT with Large Base 64 file in XML

I am working with a legacy system that uses an http post request with the body containing custom xml. This xml contains <file></file> tags with the base 64 encoding of the actual file. The existing system reads the xml, saves the file to cloud storage, then replaces the file tag with the uri to the file. The request can get as large as 100 Mb. After the file tag is changed, an xslt transformation is done and this final result is sent to another system.

I want to replace this legacy system entirely with Apigee. I see that to get large requests (>10Mb) request streaming has to be enabled. Is there a way to read in the request stream and when the file tag is detected it sends those bytes to some system like google cloud storage, when done it inserts the uri into the tag and sends the rest of the xml to the target system after doing an xslt transformation?

0 4 199
4 REPLIES 4

Unfortunately no. When streaming is enabled, you can't process (inspect and/or manipulate) the payload

There is no way to modify the stream to the endpoint?

Not within Apigee, no

Debora is correct.

For future readers... Just for clarity, there IS a way to allow the proxy to modify the payload: disable streaming.

But if you cannot do that, if streaming is enabled...then... no, there is no way in Apigee to modify the response payload. That's a direct consequence of streaming the response.