123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- from django.views.generic.base import View
- from django.utils.decorators import method_decorator
- from django.views.decorators.csrf import csrf_exempt
- from Service.ModelService import ModelService
- from Model.models import FeedBackModel, StatResModel
- from django.utils import timezone
- import traceback
- from Object.ResponseObject import ResponseObject
- from Object.TokenObject import TokenObject
- from Service.CommonService import CommonService
- import oss2
- from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
- import time
- class FeedBackView(View):
- def get(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation', None)
- return self.validation(request.GET, operation)
- def post(self, request, *args, **kwargs):
- request.encoding = 'utf-8'
- operation = kwargs.get('operation', None)
- return self.validation(request.POST, operation)
- def validation(self, request_dict, operation):
- response = ResponseObject()
- token = request_dict.get('token', None)
- tko = TokenObject(token)
- if tko.code == 0:
- userID = tko.userID
- if operation == 'add':
- return self.do_add(userID, request_dict, response)
- elif operation == 'getUploadUrl':
- return self.do_get_upload_url(request_dict, response)
- else:
- return response.json(414)
- else:
- return response.json(tko.code)
- def do_add(self, userID, request_dict, response):
- content = request_dict.get('content', None)
- # urls =
- return
- def do_get_upload_url(self, request_dict, response):
- uploadType = request_dict.get('uploadType', None)
- nowTime = int(time.time())
- if uploadType:
- StatResModel.objects.create()
- auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
- bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
- name = CommonService.createOrderID()
- obj = str(name) + '.' + uploadType
- create_data = {
- 'addTime': nowTime,
- 'name': obj
- }
- try:
- FeedBackModel.objects.create(**create_data)
- except Exception as e:
- print(repr(e))
- return response.json(178)
- else:
- # 设置此签名URL在60秒内有效。
- url = bucket.sign_url('PUT', obj, 7200)
- return response.json(0, url)
- else:
- return response.json(444, 'uploadType')
|