--- Begin Message ---
Hello,

We have a need for a non-network based (i.e. hypercall / out-of-band) file 
browser for containers and VMs within the pve-manager web UI. I'd like to be 
able to select a VM or container, click "More", and choose "File manager" and 
then browse the VM or container's file systems and upload or download files 
from my local system, through the web-browser.

For VMs (qemu), the qemu-guest-agent provides the ability to read/write guest 
files, and the pve API exposes it (with strict file size limits) as 
nodes->{node}->qemu->{vmid}->agent->file-*. Presumably, a web UI file manager 
would use that API endpoint, plus maybe an enhancement for directory listing 
and chunked upload/download (to support arbitrary size files).

For containers (LXC), the pct application can read/write files by (I think) 
mounting the container root file system on the host and touching it directly. 
But there's no corresponding API endpoint. If there were, it could be used by a 
future web UI file manager.

So to implement this feature, I think there are 5 steps:

  1.  Enhance the qemu-guest-agent and qm to support reading directory 
structure and creating directories.
  2.  Enhance the pve API to expose these new features like file-read and 
file-write.
  3.  Enhance the pve API to support chunked file read and write, for large 
files. Maybe also requiring an enhancement to the qemu-guest-agent?
  4.  Enhance the pve API to support chunked file read/write, whole file 
read/write, and directory structure/creating directories (through direct 
filesystem interaction on the host).
  5.  Write a JS front-end file manager, invokable from the Other menu, which 
uses these new/enhanced API endpoints to implement a general purpose 
out-of-band file manager.

Is there interest from the proxmox developers for something like this? If we 
started working on some of these items, would there be interest in accepting 
patches? Does my general approach look sound?

(We also investigated using SPICE's folder-sharing capabilities and the 
spice-proxy provided by the host, but that doesn't work with the Windows 
virt-viewer client, only the Linux client. It looks like there was some 
interest in the past in enhancing xterm.js to support xmodem file transfer, but 
it didn't go far.)

Regards,
Nathan Blythe
CACI

________________________________

This electronic message contains information from CACI International Inc or 
subsidiary companies, which may be company sensitive, proprietary, privileged 
or otherwise protected from disclosure. The information is intended to be used 
solely by the recipient(s) named above. If you are not an intended recipient, 
be aware that any review, disclosure, copying, distribution or use of this 
transmission or its contents is prohibited. If you have received this 
transmission in error, please notify the sender immediately.

--- End Message ---
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to