from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer import os import requests from config import * def on_file_received(handler, path): if path.startswith(RELEASED_TMP): path = path[len(RELEASED_TMP):].lstrip('/') requests.get(API_BASEURL+'/internal/sort/encoded/'+path, params={'apikey': API_APIKEY}) elif path.startswith(RAW_TMP): path = path[len(RAW_TMP):].lstrip('/') num = 0 rpath = path while os.path.exists(RAW_TARGET+'/'+rpath): num += 1 p = path.rsplit('.', 1) rpath = '.'.join([p[0]+'_'+str(num)]+p[1:]) os.rename(RAW_TMP+'/'+path, RAW_TARGET+'/'+rpath) requests.get(API_BASEURL+'/internal/sort/autoencode', params={'apikey': API_APIKEY, 'path': rpath}) else: print("Unknown path:", path) authorizer = DummyAuthorizer() authorizer.add_user('kodiert', PASSWORD, RELEASED_TMP, perm='elradfwMT') # No MKD! authorizer.add_user('autoencode', PASSWORD, RAW_TMP, perm='elradfwMT') # No MKD! handler = FTPHandler handler.banner = "Video AG upload ftpd ready." handler.authorizer = authorizer handler.on_file_received = on_file_received server = FTPServer((FTPD_ADDR, FTPD_PORT), handler) server.serve_forever()