On 10/4/24 7:45 AM, Nikolay Ganchev wrote:
We have a custom client, but we use most of the features from the guacamole java client and we fully reuse the guacd server. We already have a file upload, from the user to the VM in the session, this is simple, however I could not find if there is a way to download files from the VM via the guacamole protocol, can anyone point me towards a solution, if someone has done something similar?

You need to handle the inbound file stream by providing an "onfile" handler:

https://guacamole.apache.org/doc/guacamole-common-js/Guacamole.Client.html#event:onfile

You can then deal with the received data as you see fit. There are mechanisms available in JavaScript for client-side assembly and download of files using Blob objects and similar:

https://w3c.github.io/FileAPI/

There are reader implementations that make consuming the stream easier depending on the type of data that would be most convenient, for example:

https://guacamole.apache.org/doc/guacamole-common-js/Guacamole.BlobReader.html

The alternative to doing that would be to assemble and stream the file server-side by intercepting and handling the instructions that otherwise would have been sent to the user. This is what we do in the mainline Guacamole webapp. If you want to go that route, the main things to look at for intercepting specific instructions is the filtering functionality provided by guacamole-common:

https://guacamole.apache.org/doc/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html

https://guacamole.apache.org/doc/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html

- Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to