I don't work for the project, but was thinking about the same problem recently.
(As far as I am aware) The project used to do exactly what you describe, but was removed for this reason: https://issues.apache.org/jira/projects/GUACAMOLE/issues/GUACAMOLE-44?filter=allissues Thanks, Richard ________________________________ From: gabriel sztejnworcel <[email protected]> Sent: 09 September 2019 12:53 To: [email protected] <[email protected]> Subject: RDP Drive Redirection Hi, We would like to use the RDP drive redirection capability of Guacamole. We do not use the full web application, we've built a (relatively) simple web application around Guacamole-Common, so we don't have the this capability built-in. In the Guacamole web application, the upload/download of files involve a separate HTTP call to a service which intercepts the connection tunnel and sends the data to the server on behalf of the client and vice versa. We could do something similar, but it introduces some challenges (which are mostly related to the specific way we use Guacamole). We thought of a different approach, instead of a separate HTTP call and the stream interception, we would do everything on the client side using JavaScript. For example, to upload a file, we would use the FileReader API to read parts of the file and send it directly as blob instructions from the client. To download a file, we would send the first ack from the client, then receive the blob instructions from the server, and use the StreamSaver library to create a download stream. We have already managed to upload files successfully that way, but the latency is bad. My first question is regarding our approach in general, do you see any issues with it? What was the main reason for implementing upload and download with the stream interception mechanism? The second question is regarding the latency. Guacamole instructions are limited to 8192 bytes, which means that for large files we would have a huge amount requests and responses, which really affects the total latency. Is increasing the 8192 limit an option? Or will it causes more problems? Any other ideas to overcome this issue? Thanks, Gabriel
