Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)