I think you should be able to store the file as a vRO ResourceElement depending on the size of it. You'd have some wrangling to do to extract the content to a file on the appliance so the Copy file from vCO to guest workflow can operate (it requires a local file IIRC). The content of a ResourceElement is accessible as a MimeAttachment which can be written to a File on the local filesystem. Look at the File object in the API explorer which operates a lot like a java.io.File object. In terms of exactly *where* on the filesystem it will be created I'm not sure about as all the containers may have different roots & mounts.
Realistically, you'd have to try this out to see how it would work.
I have stored content of the order of 1-2MB as vRO ResourceElements in the past without any problems but can't say if there are challenges with larger items. In the end, whatever you store there is being written to a BLOB in a database somewhere in one of the containers I suspect.
In relation to the use of the GSM workflows for stuff like this, I like the package a lot & I've found it works quite well in general but I (at least) found it difficult to debug when it goes sideways due to the spread of the logging (workflows calling workflows calling workflows means lots of hopping about in the client - I suspect this is even more the case in the HTML client now which I find quite 'click-heavy' anyway).