Upload image qiniu

huangqimin001 5 年 前
コミット
c0c62380c9
共有5 個のファイルを変更した83 個の追加0 個の削除を含む
  1. 57 0
      commands/management/commands/qiniu.py
  2. 20 0
      integral/migrations/0019_saleclerksubmitloginfo_is_upload_qiniu.py
  3. 2 0
      integral/models.py
  4. 1 0
      kodo/settings.py
  5. 3 0
      utils/redis/rkeys.py

+ 57 - 0
commands/management/commands/qiniu.py

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

+ 20 - 0
integral/migrations/0019_saleclerksubmitloginfo_is_upload_qiniu.py

@@ -0,0 +1,20 @@
1
+# -*- coding: utf-8 -*-
2
+# Generated by Django 1.11.29 on 2020-06-08 20:35
3
+from __future__ import unicode_literals
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('integral', '0018_saleclerksubmitloginfo_code_image'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='saleclerksubmitloginfo',
17
+            name='is_upload_qiniu',
18
+            field=models.BooleanField(db_index=True, default=False, help_text='\u662f\u5426\u5df2\u4e0a\u4f20\u4e03\u725b', verbose_name='is_upload_qiniu'),
19
+        ),
20
+    ]

+ 2 - 0
integral/models.py

@@ -120,6 +120,8 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
120 120
     is_staff_delete = models.BooleanField(_(u'is_staff_delete'), default=False, help_text=_(u'是否管理员删除'), db_index=True)
121 121
     code_version = models.IntegerField(_(u'code_version'), default=1, help_text=_(u'统览码版本'), db_index=True)
122 122
 
123
+    is_upload_qiniu = models.BooleanField(_(u'is_upload_qiniu'), default=False, help_text=_(u'是否已上传七牛'), db_index=True)
124
+
123 125
     class Meta:
124 126
         verbose_name = _(u'销售员扫码出库记录')
125 127
         verbose_name_plural = _(u'销售员扫码出库记录')

+ 1 - 0
kodo/settings.py

@@ -256,6 +256,7 @@ QINIU = {
256 256
         'thumbnail': 'http://thumbnail.img.pai.ai',
257 257
         'thumbnail2': 'http://thumbnail2.img.pai.ai',
258 258
         'watermark': 'http://watermark.img.pai.ai',
259
+        'tamron': 'tamron.s3-cn-south-1.qiniucs.com',
259 260
     }
260 261
 }
261 262
 

+ 3 - 0
utils/redis/rkeys.py

@@ -79,3 +79,6 @@ SUBSCRIBE_USERINFO_LIST = 'subscribe:userinfo:%s'
79 79
 MEMBER_SHOT_DATA = 'kodo:member:shot:data'
80 80
 MEMBER_SEND_COUPON_LIST = 'kodo:member:send:coupon:list'
81 81
 MEMBER_UPGRADE_INFO = 'kodo:member:upgrade:info:%s:%s'  # brand_id, user_id
82
+
83
+# 七牛
84
+QINIU_UPLOAD_LIST = 'kodo:qiniu:upload:list'