python上传文件到smb服务器

本文最后更新于 2025年4月17日 上午

前言

某天领导安排了个活,要求写某个系统的自动备份脚本,本来是一个很简单的脚本,三两下写好了,领导又开始提要求,要能自动上传到smb服务器上就好了。于是我就在网上到处抄作业,但是尝试了一圈发现网上的教程全是复制粘贴的,全部都是错的,好在后面经过折腾自己弄好了,于是记录一下正确的实现方法

代码部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 需要安装模块:pip3 install pysmb
from smb.SMBConnection import SMBConnection
import os

filename = test.zip
pwd = os.getcwd()

# 定义文件路径
shared_folder_name = '安全部门' #共享文件夹
local_file_path= pwd+'\\'+filename #要上传的本地文件路径
remote_file_name = '配置文件\\'+filename #在SMB服务器上保存的文件名

# 开始上传文件
print('正在上传文件到smb服务器,请稍等。。。')
try:
# 创建SMB连接
conn = SMBConnection(smb_username, smb_password, 'my_client', smb_servers_ip, domain='', use_ntlm_v2=True, is_direct_tcp=True)
conn.connect(smb_servers_ip, 445)
conn.storeFile(shared_folder_name, remote_file_name, open(local_file_path, 'rb'))
print("文件上传成功")

# 断开SMB连接
conn.close()

except:
print('文件上传失败')