我还没有开始这项工作-只是想了解一些想法,但我可以使用C#Windows服务访问网络中Linux机器上的目录和文件吗?我读过this和this,但到目前为止,他们只是试图获取目录中的文件。我的目标是:
读取文件是否存在
我们希望文件是zip文件,所以解压应该在Linux机器的目录下进行
Windows服务部署在Windows机器上,其FileSystemWatcher
将监视Linux目录上的文件是否已创建
我读过一些关于C#的SSH和FTP库的文章,但这不只是为了获取文件吗?我想与目录中的文件本身交互。
任何有用的链接或答案将不胜感激。
更新:
我认为其中一个需求是不使用Active Directory,这将取消Samba的使用。
最佳答案
Samba安装指南
首先更新服务器并安装Samba:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install samba
然后wget这个文件:Samba config。
用你最喜欢的文本编辑器(即vi上的nano)打开它。别忘了给编辑发号施令!!!
找到以下行(并根据需要更改参数):
[share]
comment = A share
path = /path/to/folder
browsable = yes
guest ok = no
read only = no
create mask = 0755
注释是对共享的描述。
path是要共享的文件夹的路径
browsable=yes使共享和内容对经过身份验证的用户可浏览
guest ok=no禁用匿名登录
只读=否启用编辑和重命名文件
create mask=0755设置新文件的默认权限
然后创建访问共享的用户(并设置密码):
sudo useradd share
sudo passwd share
sudo smbpasswd -a share
sudo smbpasswd -e share
将smb.conf移到/etc/samba/smb.conf
sudo mv smb.conf /etc/samba/smb.conf
重新加载Samba配置:
sudo /etc/init.d/samba reload
或者如果不起作用:
sudo smbd reload
完成!
现在您可以使用
\\serverAddress\share
访问windows上的共享用户名是
WORKGROUP\share
或linuxServerHostname\share
,密码是您在上面设置的密码。现在,您可以通过转到资源管理器并使用“映射网络驱动器”向导,将共享作为网络驱动器映射到Windows中。勾选“使用不同凭据连接”复选框。您也可以用C#映射网络驱动器。
共享中的所有文件和文件夹现在(映射时)都充当本地文件。