Sin Descripción

qiniu.py 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. # -*- coding: utf-8 -*-
  2. import logging
  3. import os
  4. from django_six import CompatibilityBaseCommand, close_old_connections
  5. from integral.models import SaleclerkSubmitLogInfo
  6. from utils.qiniucdn import upload_file_path
  7. from utils.redis.connect import r
  8. from utils.redis.rkeys import QINIU_UPLOAD_LIST
  9. logger = logging.getLogger('console')
  10. class Command(CompatibilityBaseCommand):
  11. def handle(self, *args, **options):
  12. logger.info('Upload image qiniu is dealing')
  13. while True:
  14. # r.rpushjson(QINIU_UPLOAD_LIST, {
  15. # 'model': 'SaleclerkSubmitLogInfo',
  16. # 'pk': 'pk',
  17. # })
  18. k, v = r.blpopjson(QINIU_UPLOAD_LIST, 60)
  19. if not v:
  20. continue
  21. logger.info(v)
  22. model, pk = v.get('model', ''), v.get('pk', '')
  23. close_old_connections()
  24. if model == 'SaleclerkSubmitLogInfo':
  25. try:
  26. ssli = SaleclerkSubmitLogInfo.objects.get(pk=pk)
  27. except SaleclerkSubmitLogInfo.DoesNotExist:
  28. continue
  29. is_upload_qiniu = True
  30. if ssli.image:
  31. try:
  32. if os.path.exists(ssli.image.path):
  33. upload_file_path(ssli.image.path, key=ssli.image.name, bucket='tamron')
  34. os.remove(ssli.image.path)
  35. except Exception:
  36. is_upload_qiniu = False
  37. if ssli.code_image:
  38. try:
  39. if os.path.exists(ssli.code_image.path):
  40. upload_file_path(ssli.code_image.path, key=ssli.code_image.name, bucket='tamron')
  41. os.remove(ssli.code_image.path)
  42. except Exception:
  43. is_upload_qiniu = False
  44. ssli.is_upload_qiniu = is_upload_qiniu
  45. ssli.save()
  46. close_old_connections()