Functions for publish website by ftp or sftp
This commit is contained in:
@@ -6,6 +6,8 @@ from PIL import Image
|
||||
from pathlib import Path, PurePath, PurePosixPath
|
||||
from shutil import rmtree, copytree
|
||||
import subprocess
|
||||
from flask import session
|
||||
|
||||
|
||||
class DataSite:
|
||||
user_folder = None
|
||||
@@ -214,25 +216,44 @@ class DataSite:
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
|
||||
def publish(self, serverInfos=dict(), password=str()):
|
||||
userDir = Path(PurePosixPath(self.user_folder))
|
||||
|
||||
|
||||
command = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; chmod -R o+rx ./; bye;'".format(serverInfos['username'],
|
||||
upload = "lftp -u \"{}\",\"{}\" -p {} {} -e ' mirror -R public {}; chmod -R o+rx ./; bye;'".format(serverInfos['username'],
|
||||
password,
|
||||
serverInfos['Port'],
|
||||
serverInfos['Address'],
|
||||
serverInfos['folder'])
|
||||
|
||||
set_permissions = "lftp -u \"{}\",\"{}\" -p {} {} -e 'chmod -R o+rx ./; bye;'".format(serverInfos['username'],
|
||||
password,
|
||||
serverInfos['Port'],
|
||||
serverInfos['Address'],
|
||||
serverInfos['folder'])
|
||||
try:
|
||||
subprocess.call(command, shell=True, cwd=str(userDir))
|
||||
subprocess.call(upload, shell=True, cwd=str(userDir))
|
||||
self.update_status_publish("Uploaded")
|
||||
subprocess.call(set_permissions, shell=True, cwd=str(userDir))
|
||||
|
||||
except ChildProcessError:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def update_status_publish (self, status: str):
|
||||
self.datas['publication_status'] = status
|
||||
self.filej.write_text(json.dumps(self.datas, indent=5))
|
||||
|
||||
def get_status_publish(self):
|
||||
if 'publication_status' in self.datas.keys():
|
||||
return self.datas['publication_status']
|
||||
else:
|
||||
return "";
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user