parent
7147e09335
commit
be4c0fa661
@ -1,129 +0,0 @@ |
||||
#!/usr/bin/env python |
||||
# -*- coding:utf-8 -*- |
||||
# project: 3月 |
||||
# author: liuyu |
||||
# date: 2020/3/6 |
||||
from rest_framework.views import APIView |
||||
from api.utils.response import BaseResponse |
||||
from api.utils.auth import ExpiringTokenAuthentication |
||||
from api.utils.app.randomstrings import make_from_user_uuid |
||||
from rest_framework.response import Response |
||||
from fir_ser import settings |
||||
from api.utils.TokenManager import DownloadToken |
||||
import os,json |
||||
|
||||
class UploadView(APIView): |
||||
''' |
||||
上传文件接口 |
||||
''' |
||||
authentication_classes = [ExpiringTokenAuthentication, ] |
||||
# parser_classes = (MultiPartParser,) |
||||
|
||||
def post(self, request,*args,**kwargs): |
||||
res = BaseResponse() |
||||
|
||||
# 获取多个file |
||||
files = request.FILES.getlist('file', None) |
||||
certinfo = request.data.get('certinfo', None) |
||||
|
||||
try: |
||||
certinfo = json.loads(certinfo) |
||||
if not certinfo: |
||||
res.msg = "token 校验失败" |
||||
res.code = 1006 |
||||
return Response(res.dict) |
||||
except Exception as e: |
||||
print(e) |
||||
res.msg = "token 校验失败" |
||||
res.code = 1006 |
||||
return Response(res.dict) |
||||
|
||||
token_obj = DownloadToken() |
||||
if token_obj.verify_token(token=certinfo.get("upload_token",None),release_id=certinfo.get("upload_key",None)): |
||||
|
||||
if not files: |
||||
res.msg="文件不存在" |
||||
for file_obj in files: |
||||
# 将文件缓存到本地后上传 |
||||
print(file_obj.name) |
||||
try: |
||||
app_type = file_obj.name.split(".")[-1] |
||||
if app_type != "apk" and app_type != "ipa" and app_type != 'png' : |
||||
raise TypeError |
||||
except Exception as e: |
||||
print(e) |
||||
res.code = 1003 |
||||
res.msg = "错误的类型" |
||||
return Response(res.dict) |
||||
|
||||
random_file_name = make_from_user_uuid(request.user) |
||||
# random_file_name = certinfo.get("upload_key",None) |
||||
local_file = os.path.join(settings.MEDIA_ROOT,certinfo.get("upload_key",random_file_name)) |
||||
# 读取传入的文件 |
||||
try: |
||||
destination = open(local_file, 'wb+') |
||||
for chunk in file_obj.chunks(): |
||||
destination.write(chunk) |
||||
destination.close() |
||||
except Exception as e: |
||||
res.code = 1003 |
||||
res.msg = "数据写入失败" |
||||
return Response(res.dict) |
||||
|
||||
# try: |
||||
# AnalyzeUtil("%s"%(random_file_name+"."+app_type),request) |
||||
# except Exception as e: |
||||
# res.code = 1003 |
||||
# res.msg = "应用解析失败" |
||||
# return Response(res.dict) |
||||
else: |
||||
res.msg = "token 校验失败" |
||||
res.code = 1006 |
||||
|
||||
return Response(res.dict) |
||||
|
||||
|
||||
class UploadImgView(APIView): |
||||
''' |
||||
上传图片接口 |
||||
''' |
||||
authentication_classes = [ExpiringTokenAuthentication, ] |
||||
|
||||
def post(self, request): |
||||
res = BaseResponse() |
||||
|
||||
# 获取多个file |
||||
files = request.FILES.getlist('file', None) |
||||
uid = request.data.get("uid",None) |
||||
print(uid) |
||||
for file_obj in files: |
||||
# 将文件缓存到本地后上传 |
||||
try: |
||||
app_type = file_obj.name.split(".")[-1] |
||||
if app_type in ['png','jpeg','jpg']: |
||||
#上传图片 |
||||
pass |
||||
else: |
||||
raise |
||||
|
||||
except Exception as e: |
||||
res.code = 1003 |
||||
res.msg = "错误的类型" |
||||
return Response(res.dict) |
||||
|
||||
random_file_name = make_from_user_uuid(request.user) |
||||
local_file = os.path.join(settings.MEDIA_ROOT,"apps","%s"%(random_file_name+"."+app_type)) |
||||
# 读取传入的文件 |
||||
try: |
||||
destination = open(local_file, 'wb+') |
||||
for chunk in file_obj.chunks(): |
||||
# 写入本地文件 |
||||
destination.write(chunk) |
||||
destination.close() |
||||
except Exception as e: |
||||
res.code = 1003 |
||||
res.msg = "数据写入失败" |
||||
return Response(res.dict) |
||||
|
||||
|
||||
return Response(res.dict) |
Loading…
Reference in new issue