def upload(request): """ PyPi style upload handler. Currently discards metadata. """ repo_dir = CONFIG['repo_dir'] fp = request.POST['content'].file.getvalue().strip() filepath = path(CONFIG['upload_dest_dir']) / fp user = request.headers['Authorization'].split(' ')[1].decode('base64').split(":")[0] filename = request.POST['content'].filename filepath.copy(path(repo_dir) / filename) upload_md = dict(request.POST) upload_md['user'] = user upload_md['pkg_filename'] = filename recreate_index(repo_dir) request.environ['gp.fileupload.purge'](filepath) return Response(status=200)
def recreate_index(repo_dir): repo_dir = path(repo_dir) with utils.pushd(repo_dir): pkgs = [x.relpath() for x in repo_dir.files() if x.endswith('gz') or x.endswith('egg')] makeindex(pkgs)