You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Samba客户端从Linux向Windows共享盘复制文件时出现连接失败问题求助

解决SMBConnection.storeFile抛出“Unable to connect to shared device”错误的问题

看起来你已经搞定了SMB连接的基础部分,但storeFile()的调用细节上可能踩了坑,我帮你梳理几个最可能的原因和修复方法:

1. 共享路径参数格式完全错了

这是最常见的问题!storeFile()的第一个参数要求的是共享名称(就是你listShares()返回的那些共享名),而不是完整的UNC路径。你现在传的\\\\fs01\\data\\folder1是Windows里的完整路径,但这个方法不认这个格式。

举个例子,如果你的共享名是data,那第一个参数只需要传'data',第二个参数才是共享目录下的文件路径(包含文件名)。

错误写法:

connection.storeFile('\\\\fs01\\data\\folder1', file1, file_obj)

修正后的正确写法:

connection.storeFile('data', 'folder1/file1', file_obj)

(Python里用正斜杠更省心,当然用双反斜杠folder1\\file1也可以)

2. 目标文件夹没有写入权限

你能列出共享不代表你能往里面写文件。去Windows服务器上检查两个地方:

  • 共享权限:确认user1账号在data共享上有写入权限
  • NTFS权限:data共享对应的本地文件夹下,folder1目录也要给user1分配写入/修改权限

3. 文件打开模式不对

你用open(filename,"r")是只读文本模式,如果传输的是二进制文件(比如图片、exe、压缩包),肯定会出问题。哪怕是文本文件,用二进制模式打开也能避免编码转换带来的意外:

file_obj = open(filename, "rb")

4. 尝试换个端口连接

你现在连的是139端口(NetBIOS over TCP),有些Windows服务器可能默认用445端口(直接SMB)。试试把连接端口改成445:

connection.connect(ip, 445)

内容的提问来源于stack exchange,提问作者Digital Da

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:22:37