添加md文章上传工具
  • TODAY :
    1. 做了一个基于sftp的博文上传工具,用于在线更新博客
    2. 搬运自己旧笔记 进度:(10/99+)
    3. 添加Latex数学公式支持
  • TODO :
    1. 明天继续搬运…
    2. 完善上传工具功能。
    3. 去除Browsersync调试
    4. 优化覆盖文件导致渲染失败的bug
    5. 优化ssh,sftp无密码登录

附个代码

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
import paramiko
import os


def connect_remote():
host = '123.123.123.123'
port = 22
name = 'abc'
password = '123456'

# 创建SSH对象
ssh_client = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机, 第一次登录的认证信息
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh_client.connect(hostname=host, port=port, username=name, password=password)

transport = paramiko.Transport((host, port))
transport.connect(username=name, password=password)
return ssh_client, transport


if __name__ == '__main__':
local_dir = 'E:/markdown/blog/'
remote_dir = r'/usr/local/blog/source/_posts/'

print("=== sftp python v0.1 ===")
print(" 连接服务器... ")
ssh, sftp = connect_remote()
print(" 连接成功 ")
print(" 1.查看博客路径")
print(" 2.上传Post文章")
print(" 3.下载Post文章")
print(" 4.按q退出")

while 1:
answer = input()
if answer == 'q':
# 关闭连接
ssh.close()
sftp.close()
exit(0)

if int(answer) == 1:
stdin, stdout, stderr = ssh.exec_command('ls ' + remote_dir)
res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode())

elif int(answer) == 2:
# basedir 根目录, sub_directory 根目录下所有文件夹, sub_file 根目录下所有文件
for basedir, sub_directory, sub_file in os.walk(local_dir):
for i in sub_file:
print(i)
file = input("which file want to upload?\n")
sftp_client = paramiko.SFTPClient.from_transport(sftp)
print(local_dir + file + '.md', remote_dir + file + '.md')
sftp_client.put(local_dir + file + '.md', remote_dir + file + '.md')
print("ok!\n")

elif int(answer) == 3:
stdin, stdout, stderr = ssh.exec_command('ls ' + remote_dir)
res, err = stdout.read(), stderr.read()
result = res if res else err
print(result.decode())

file = input("which file want to download?\n")
sftp_client = paramiko.SFTPClient.from_transport(sftp)
sftp_client.get(remote_dir + file + '.md', local_dir + file + '.md')
print("ok!\n")

文章作者: Shengyaqingfeng
文章链接: https://creazyboyone.github.io/添加md文章上传工具/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shengyaqingfeng's Blog