#go #smb #microsoft-distributed-file-system
#Вперед #smb #microsoft-распределенная файловая система
Вопрос:
У меня есть общий ресурс dfs на Windows Server 2012. Я могу открыть общий ресурс и прочитать файлы из другой системы в проводнике Windows, указав путь, подобный: \ dfsserver usernamepaceTomgo.png. Однако, используя пакет golang smb2 с помощьюhttps://github.com/hirochachacha/go-smb2 Я получаю сообщение об ошибке как
ошибка ответа: сервер, с которым связались, не поддерживает указанную часть пространства имен DFS
Но если я попытаюсь открыть файл с фактическим путем к общему ресурсу \ dfsserver public shareTom go.png, тогда код будет работать нормально. Итак, проблема в том, что я не знаю фактического пути во время выполнения, и я хочу иметь возможность открывать файл с помощью пути, предоставленного DFS.
Может ли быть так, что DFS не работает должным образом с smb2? или некоторые другие проблемы. Заранее спасибо за ваши комментарии.
func main(){
// actualPath := `\dfsserverpublic shareTomgo.png`
// dfsPath := `\dfsserverusernamespaceTomgo.png`
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%s", "dfsserver", "445"))
if err != nil {
fmt.Println(err)
}
defer conn.Close()
dial := amp;smb2.Dialer{
Initiator: amp;smb2.NTLMInitiator{
User: "user",
Password: "password",
Domain: "dfsserver",
},
}
session, err := dial.Dial(conn)
if err != nil {
fmt.Println(err)
}
defer session.Logoff()
mountPoint, err := session.Mount("usernamespace")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
// error occures here, if the mountPoint was "public share" instead of "usernamespace" then no error
remoteFile, err := mountPoint.Open(`Tomgo.png`)
defer remoteFile.Close()
if err != nil {
fmt.Println(err)
}
}
Комментарии:
1. Здесь та же проблема … вы когда-нибудь находили ответ на эту проблему?
2. вы решили это? @Hussain