Set Service's UseFileStream=True, then content is stored on files on server, stream folder of database defined for namespace. 

It doesn't grow then CACHE.DAT anymore, of course it grows still disk usage. But You can add purge task once in day and keep messages for 0 days so everything is cleaned up once in day.

Cleaning grows some journal but not much in this case because file contents are not in CACHE.DAT

And if Your files are so big, that You want use different temporary directory during transfer You can change this for whole system:
^%SYS("TempDir")="/enssys/ensprod/mgr/Temp"

or just for one namespace:
^%SYS("TempDir","YOURNAMESPACE")="/some/temp/dir"

Or build some streaming adapter, it might be good for not so important data, which needed just on demand, not later. Like streaming live video via Ensemble :) 

Eduard's link to InMemory capabilities is interesting, thanks!