Geen omschrijving

qiniucdn.py 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # -*- coding: utf-8 -*-
  2. import qiniu
  3. from django.conf import settings
  4. QINIU = settings.QINIU
  5. auth = qiniu.Auth(QINIU['access_key'], QINIU['secret_key'])
  6. def upload(data, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  7. if not data:
  8. return ''
  9. token = auth.upload_token(bucket, key=key)
  10. ret, _ = qiniu.put_data(token, key, data, mime_type=mime_type)
  11. return ret.get('key')
  12. def upload_file_admin(obj, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  13. # Django Admin Upload
  14. if not obj.image:
  15. return ''
  16. obj.image.seek(0)
  17. return upload(obj.image.read(), key=key or obj.image.name, mime_type=mime_type, bucket=bucket)
  18. def upload_file_req(file, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  19. # photo = request.FILES.get('photo', '')
  20. # <InMemoryUploadedFile: photo.png (image/png)>
  21. if not file:
  22. return ''
  23. file.seek(0)
  24. return upload(file.read(), key=key or file.name, mime_type=mime_type, bucket=bucket)
  25. def upload_file_path(path, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  26. if not path:
  27. return ''
  28. token = auth.upload_token(bucket, key=key)
  29. ret, _ = qiniu.put_file(token, key, path, mime_type=mime_type)
  30. return ret.get('key')
  31. def qiniu_file_url(key, bucket=QINIU['bucket_default']):
  32. if not key:
  33. return ''
  34. return '{}/{}'.format(QINIU['buckets'][bucket] if settings.QINIU_FILE_URL_HTTPS else settings.QINIU_FILE_URL_AFTER, key)