:art: Support file directly upload qiniu

huangqimin001 2 lat temu
rodzic
commit
431660d0f7
5 zmienionych plików z 36 dodań i 13 usunięć
  1. 2 2
      api/member_views.py
  2. 25 0
      kodo/oauth_settings.py
  3. 1 5
      kodo/settings.py
  4. 2 2
      requirements_dj.txt
  5. 6 4
      utils/qiniucdn.py

+ 2 - 2
api/member_views.py

@@ -556,8 +556,8 @@ def activity_contribute(request):
556 556
 
557 557
     try:
558 558
         signup_info = MemberActivitySignupInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True)
559
-    except:
560
-        signup_info = NULL
559
+    except MemberActivitySignupInfo.DoesNotExist:
560
+        signup_info = None
561 561
 
562 562
     contribution = MemberActivityContributionInfo.objects.create(
563 563
         brand_id=brand_id,

+ 25 - 0
kodo/oauth_settings.py

@@ -4,6 +4,8 @@ import logging
4 4
 
5 5
 from django.conf import settings
6 6
 
7
+from utils.qiniucdn import qiniu_file_url, upload_file_path, upload_file_req
8
+
7 9
 
8 10
 logger = logging.getLogger('logit')
9 11
 
@@ -228,10 +230,18 @@ def DJANGO_FILE_UPLOAD_BASE_PATH_CALLBACK_FUNC(request):
228 230
     return request.POST.get('file_type', '')
229 231
 
230 232
 
233
+def DJANGO_FILE_UPLOAD_STORAGE_FUNC(request, file_path=None):
234
+    """ DJANGO FILE UPLOAD Storage Func """
235
+    return {
236
+        # 'file_url': '',
237
+    }
238
+
239
+
231 240
 def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None):
232 241
     """ DJANGO FILE UPLOAD Callback Func """
233 242
     from logs.models import MchLogInfo
234 243
     file_type = request.POST.get('file_type', '')
244
+    upload_qiniu = request.POST.get('upload_qiniu', '')
235 245
 
236 246
     if file_type == 'logfile':
237 247
         optor_id = request.POST.get('optor_id', '')
@@ -246,10 +256,25 @@ def DJANGO_FILE_UPLOAD_CALLBACK_FUNC(request, file_path=None, file_url=None):
246 256
     elif file_type == 'contribution':
247 257
         width = request.POST.get('width', '')
248 258
         height = request.POST.get('height', 0)
259
+        file = request.FILES.get('file', '')
260
+        # upload_file_path('media/' + file_path, file_path, bucket='tamron')
261
+        upload_file_req(file, file_path, bucket='tamron')
262
+        file_url = qiniu_file_url(file_path, bucket='tamron')
249 263
 
250 264
         return {
251 265
             'width': width,
252 266
             'height': height,
267
+            'file_url': file_url,
268
+        }
269
+
270
+    elif file_type == 'member_activity' or (file_type and upload_qiniu):
271
+        file = request.FILES.get('file', '')
272
+        # upload_file_path('media/' + file_path, file_path, bucket='tamron')
273
+        upload_file_req(file, file_path, bucket='tamron')
274
+        file_url = qiniu_file_url(file_path, bucket='tamron')
275
+
276
+        return {
277
+            'file_url': file_url,
253 278
         }
254 279
 
255 280
     zbar = int(request.POST.get('zbar', 0))

+ 1 - 5
kodo/settings.py

@@ -235,7 +235,7 @@ MEMBER_CARD_ID_HANYUAN = ''
235 235
 QINIU = {
236 236
     'access_key': 'yCE3xWXduLTERkx_vSNVAIHNcg1pje6EwygiRPjP',
237 237
     'secret_key': '05sCekniLCgM6-d_PxrH8sFjvEOsx3ev-FgS7R-k',
238
-    'bucket_default': 'photo',
238
+    'bucket_default': 'tamron',
239 239
     'buckets': {
240 240
         'original': 'http://original.img.pai.ai',
241 241
         'photo': 'http://photo.img.pai.ai',
@@ -319,10 +319,6 @@ API_DOMAIN_HTTP = 'http://api.pai.ai'
319 319
 OAUTH_DOMAIN = 'http://pai.ai'
320 320
 PREAUTH_DOMAIN = 'http://open.kodo.com.cn'
321 321
 
322
-# LOGIT 设置
323
-LOGIT_BODY_FLAG = True
324
-LOGIT_RES_FLAG = True
325
-
326 322
 # Django-Admin Settings
327 323
 # DISABLE_ACTION = False
328 324
 

+ 2 - 2
requirements_dj.txt

@@ -5,11 +5,11 @@ django-curtail-uuid==1.0.4
5 5
 django-daterange-filter==1.3.0
6 6
 django-detect==1.0.20
7 7
 django-file-md5==1.0.3
8
-django-file-upload==1.1.3
8
+django-file-upload==1.1.4
9 9
 django-ip==1.0.2
10 10
 django-json-render==1.0.3
11 11
 django-json-response==1.1.5
12
-django-logit==1.1.3
12
+django-logit==1.1.4
13 13
 django-mobi2==1.0.2
14 14
 django-models-ext==1.1.10
15 15
 django-multidomain==1.1.4

+ 6 - 4
utils/qiniucdn.py

@@ -20,15 +20,17 @@ def upload_file_admin(obj, key=None, mime_type='application/octet-stream', bucke
20 20
     # Django Admin Upload
21 21
     if not obj.image:
22 22
         return ''
23
-    return upload(obj.image.read(), key=key, mime_type=mime_type, bucket=bucket)
23
+    obj.image.seek(0)
24
+    return upload(obj.image.read(), key=key or obj.image.name, mime_type=mime_type, bucket=bucket)
24 25
 
25 26
 
26
-def upload_file_req(photo, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
27
+def upload_file_req(file, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):
27 28
     # photo = request.FILES.get('photo', '')
28 29
     # <InMemoryUploadedFile: photo.png (image/png)>
29
-    if not photo:
30
+    if not file:
30 31
         return ''
31
-    return upload(photo.read(), key=key, mime_type=mime_type, bucket=bucket)
32
+    file.seek(0)
33
+    return upload(file.read(), key=key or file.name, mime_type=mime_type, bucket=bucket)
32 34
 
33 35
 
34 36
 def upload_file_path(path, key=None, mime_type='application/octet-stream', bucket=QINIU['bucket_default']):