gowindows-share

Golang: Access a Windows share (from Linux application)


Is there a proper way to connect to a Windows share, such as \windowspc\c$\myshare, from a Go application that is compiled and running on a Linux device?

The share will require credentials to save a file to the target UNC path.

Is there a best practices to accomplish this?


Solution

  • Theoretically yes, practically no.

    Windows shares use the SMB/CIFS family of protocols. Those can be implemented in Go and be used to access the shares. This is a huge task, though.

    Instead of having this in your application the best way is to require the share to be mounted from your system and then access it like a local file system from the application.

    If you really want to use SMB/CIFS you can check whether the Gnome VFS (virtual file system) or FUSE as C libraries from within Go, but this will be messy and ugly.