拍爱

qiniucdn.py 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. return upload(obj.image.read(), key=key, mime_type=mime_type, bucket=bucket)
  17. def upload_file_req(photo, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  18. # photo = request.FILES.get('photo', '')
  19. # <InMemoryUploadedFile: photo.png (image/png)>
  20. if not photo:
  21. return ''
  22. return upload(photo.read(), key=key, mime_type=mime_type, bucket=bucket)
  23. def upload_file_path(path, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
  24. if not path:
  25. return ''
  26. token = auth.upload_token(bucket, key=key)
  27. ret, _ = qiniu.put_file(token, key, path, mime_type=mime_type)
  28. return ret.get('key')
  29. def qiniu_file_url(key, bucket):
  30. return '{}/{}'.format(QINIU['buckets'][bucket], key)