def uploaded_file(filename, token): username = token_to_name(token) newpath = os.path.join(app.config['UPLOAD_FOLDER'], username) if request.method == 'GET': if os.path.exists(os.path.join(newpath, filename)): return send_from_directory(newpath, filename) else: code = 404 result = 'file does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult) elif request.method == 'DELETE': if os.path.exists(os.path.join(newpath, filename)): os.remove(os.path.join(newpath, filename)) code = 200 result = 'file deleted successfully' tresult = {'code': code, 'result': result} thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) return json.dumps(tresult) else: code = 404 result = 'file does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult)
def upload_file(token): username = token_to_name(token) newpath = os.path.join(app.config['UPLOAD_FOLDER'], username) if request.method == 'POST': f = request.files['file'] filename = secure_filename(f.filename) tfilepath = os.path.join(newpath, filename) tfilepath = os.path.join(os.getcwd(), tfilepath) thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method,filepath=tfilepath) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) f.save(os.path.join(newpath, filename)) code = 200 result = 'file uploaded successfully' tresult = {'code': code, 'result': result} return json.dumps(tresult) elif request.method == 'GET': filePath = os.path.join(os.getcwd(), newpath) code = 200 #result = os.listdir(filePath) fileslist = os.listdir(filePath) result = [] for afile in fileslist: fpath = os.path.join(newpath, afile) tempj = {'name': afile, 'size': size_transfer(os.path.getsize(fpath)), 'mtime': time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(os.path.getmtime(fpath)))} result.append(tempj) tresult = {'code': code, 'result': result} thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') #save_log(logtime=thetime,interface=request.path,method=request.method) return json.dumps(tresult)
def change_filename(oldfilename, newfilename, token): username = token_to_name(token) newpath = os.path.join(app.config['UPLOAD_FOLDER'], username) if request.method == 'PUT': if os.path.exists(os.path.join(newpath, oldfilename)): os.rename(os.path.join(newpath, oldfilename), os.path.join(newpath, newfilename)) code = 200 result = 'file name changed successfully' tresult = {'code': code, 'result': result} thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) return json.dumps(tresult) else: code = 404 result = 'file does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult)
def reg_or_log(name, password): md = hashlib.md5() md.update(password.encode(encoding='utf-8')) password = md.hexdigest() if request.method == 'POST': if if_user_exist(name): code = 304 result = 'user already exists' tresult = {'code': code, 'result': result} return json.dumps(tresult) doc = {'_id': name, 'name': name, 'password': password, 'token': '', 'mailbox': []} thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) db.save(doc) #oldfilePath = os.path.join(os.getcwd(), app.config['UPLOAD_FOLDER']) cpath = app.config['UPLOAD_FOLDER'] + '/' + name newfilePath = os.path.join(os.getcwd(), cpath) isExists=os.path.exists(newfilePath) if not isExists: os.makedirs(newfilePath) code = 200 result = 'user registered successfully' tresult = {'code': code, 'result': result} return json.dumps(tresult) elif request.method == 'GET': if not if_user_exist(name): code = 404 result = 'user does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult) if password == db[name]['password']: tempstr = name + str(random.randint(0,99999)) md.update(tempstr.encode(encoding='utf-8')) token = md.hexdigest() tdata = db[name] tdata['token'] = token thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) db.save(tdata) code = 200 result = 'user login successfully' tresult = {'code': code, 'result': result, 'token': token} return json.dumps(tresult) else: code = 403 result = 'wrong password' tresult = {'code': code, 'result': result} return json.dumps(tresult)
def share_files(targetusername, filename, token): username = token_to_name(token) if not if_user_exist(targetusername): code = 404 result = 'target user does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult) if request.method == 'POST': tdata = db[targetusername] message = {'from': username, 'filename': filename} tdata['mailbox'].append(message) thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) db.save(tdata) code = 200 result = 'file shared successfully' tresult = {'code': code, 'result': result} return json.dumps(tresult) #elif request.method == 'GET': else: tdata = db[username] message = {'from': targetusername, 'filename': filename} if message in tdata['mailbox']: tdata['mailbox'].remove(message) thetime = datetime.datetime.now().strftime('%Y%m%d %H:%M:%S.%f') if algorithmapi.request_respond(logtime=thetime,interface=request.path,method=request.method) == False: code = 503 result = 'service unavailable' tresult = {'code': code, 'result': result} return json.dumps(tresult) db.save(tdata) #save_log(logtime=thetime,interface=request.path,method=request.method) if request.method == 'GET': #tpstr = app.config['UPLOAD_FOLDER'] + '/' + targetusername tpstr = os.path.join(app.config['UPLOAD_FOLDER'], targetusername) frompath = os.path.join(tpstr, filename) tpstr = os.path.join(app.config['UPLOAD_FOLDER'], username) filename += '(from_' + targetusername + ')' topath = os.path.join(tpstr, filename) copyfile(frompath, topath) code = 200 result = 'file accepted successfully' tresult = {'code': code, 'result': result} return json.dumps(tresult) if request.method == 'DELETE': code = 200 result = 'file refused successfully' tresult = {'code': code, 'result': result} return json.dumps(tresult) else: code = 404 result = 'file does not exist' tresult = {'code': code, 'result': result} return json.dumps(tresult)