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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| filename = "测试一次_20250203_170811" filename = filename + ".md" import re import os import glob from smb.SMBConnection import SMBConnection
server_ip = "" server_name = "SERVER_NAME" share_name = "blog" file_path = "hexo/source/_posts/" + filename username = "ulna" password = "" port = 4445 directory = r"/image\\" + filename.split('.')[0] img_dir = "hexo/source/image/" + filename.split('.')[0]
with open(filename, 'r', encoding='utf-8') as file: content = file.read()
modified_text = re.sub(r'(?<!\/)\bimage\b', r'/image', content) def get_all_images(directory): image_extensions = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.gif'] image_files = [] for extension in image_extensions: image_files.extend(glob.glob(os.path.join(directory, extension))) return image_files
def write_file_to_smb(server_ip, server_name, share_name, file_path, username, password, port=445, modified_text=""): conn = SMBConnection(username, password, "client_machine_name", server_name, use_ntlm_v2=True) assert conn.connect(server_ip, port)
from io import BytesIO file_obj = BytesIO(modified_text.encode('utf-8')) conn.storeFile(share_name, file_path, file_obj)
conn.close()
def upload_images(server_ip, server_name, share_name, img_dir, username, password, port=445, directory=""): conn = SMBConnection(username, password, "client_machine_name", server_name, use_ntlm_v2=True) assert conn.connect(server_ip, port)
image_files = get_all_images(directory)
conn.createDirectory(share_name, img_dir)
for image_file in image_files: with open(image_file, 'rb') as file_obj: conn.storeFile(share_name, img_dir + "/" + os.path.basename(image_file), file_obj)
conn.close()
write_file_to_smb(server_ip, server_name, share_name, file_path, username, password, port, modified_text) upload_images(server_ip, server_name, share_name, img_dir, username, password, port, directory) print("博客已上传到服务器!")
|