FeedBack.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. from django.views.generic.base import View
  2. from django.utils.decorators import method_decorator
  3. from django.views.decorators.csrf import csrf_exempt
  4. from Service.ModelService import ModelService
  5. from Model.models import FeedBackModel, StatResModel
  6. from django.utils import timezone
  7. import traceback
  8. from Object.ResponseObject import ResponseObject
  9. from Object.TokenObject import TokenObject
  10. from Service.CommonService import CommonService
  11. import oss2
  12. from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
  13. import time
  14. class FeedBackView(View):
  15. def get(self, request, *args, **kwargs):
  16. request.encoding = 'utf-8'
  17. operation = kwargs.get('operation', None)
  18. return self.validation(request.GET, operation)
  19. def post(self, request, *args, **kwargs):
  20. request.encoding = 'utf-8'
  21. operation = kwargs.get('operation', None)
  22. return self.validation(request.POST, operation)
  23. def validation(self, request_dict, operation):
  24. response = ResponseObject()
  25. token = request_dict.get('token', None)
  26. tko = TokenObject(token)
  27. if tko.code == 0:
  28. userID = tko.userID
  29. if operation == 'add':
  30. return self.do_add(userID, request_dict, response)
  31. elif operation == 'getUploadUrl':
  32. return self.do_get_upload_url(request_dict, response)
  33. else:
  34. return response.json(414)
  35. else:
  36. return response.json(tko.code)
  37. def do_add(self, userID, request_dict, response):
  38. content = request_dict.get('content', None)
  39. # urls =
  40. return
  41. def do_get_upload_url(self, request_dict, response):
  42. uploadType = request_dict.get('uploadType', None)
  43. nowTime = int(time.time())
  44. if uploadType:
  45. StatResModel.objects.create()
  46. auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
  47. bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
  48. name = CommonService.createOrderID()
  49. obj = str(name) + '.' + uploadType
  50. create_data = {
  51. 'addTime': nowTime,
  52. 'name': obj
  53. }
  54. try:
  55. FeedBackModel.objects.create(**create_data)
  56. except Exception as e:
  57. print(repr(e))
  58. return response.json(178)
  59. else:
  60. # 设置此签名URL在60秒内有效。
  61. url = bucket.sign_url('PUT', obj, 7200)
  62. return response.json(0, url)
  63. else:
  64. return response.json(444, 'uploadType')