接上一篇,文件放在Digital Ocean的速度也不快。刚好我前两天申请了一个万网的免费PHP空间,我就想如何利用这个PHP空间。
PHP我肯定是一点都不熟悉的,好在其开放了FTP,于是我想到了用FTP来自动同步。
def upAll(path,ftp):
# 列出所有VPS上的文件和目录
filelist = os.listdir(path)
# 列出ftp的文件和目录
ftplist = ftp.nlst()
for u in filelist:
# 如果是文件
if(os.path.isfile(os.path.join(path,u))):
# 判断文件是否在ftp中存在
if(u in ftplist):
# 比较文件大小
if(ftp.size(u)!=os.path.getsize(os.path.join(path,u))):
# 上传
ftp.storbinary('STOR '+u,open(os.path.join(path,u),'rb'))
else:
# 上传
ftp.storbinary('STOR '+u,open(os.path.join(path,u),'rb'))
# 如果是目录
if(os.path.isdir(os.path.join(path,u))):
# 如果目录不存在,就新建一个
if(u not in ftplist):
ftp.mkd(u)
# ftp进入子目录
ftp.cwd(u)
# 本地文件也进入子目录
upAll(os.path.join(path,u),ftp)
def syncAli():
ali = FTP(host='your_ftp_address', user='your_username', passwd='your_password')
# FTP进入htdocs目录
ali.cwd("htdocs")
# 需要同步的目录
upAll("/home/book/website",ali)
整个过程是一个遍历的过程(最开始还以为是递归-_-)。
即使有跳过相同文件的设定,同步起来还是不快……,起码在这个函数还没有执行完,就已经Github就判定HTTP响应超时了。