|
@@ -2,10 +2,12 @@
|
|
|
# -*- coding: utf-8 -*-
|
|
|
import time
|
|
|
|
|
|
+import boto3
|
|
|
+import botocore
|
|
|
import oss2
|
|
|
from django.views.generic.base import View
|
|
|
|
|
|
-from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET
|
|
|
+from Ansjer.config import OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET, REGION_NAME, ACCESS_KEY_ID, SECRET_ACCESS_KEY
|
|
|
from Model.models import AppLogModel
|
|
|
from Object.ResponseObject import ResponseObject
|
|
|
from Object.TokenObject import TokenObject
|
|
@@ -26,8 +28,12 @@ class AppLogView(View):
|
|
|
return self.validate(request.POST, operation)
|
|
|
|
|
|
def validate(self, request_dict, operation):
|
|
|
- token = request_dict.get('token', None)
|
|
|
response = ResponseObject()
|
|
|
+ if operation == 'getUploadUrl':
|
|
|
+ return self.get_upload_url('123', request_dict, response)
|
|
|
+
|
|
|
+ token = request_dict.get('token', None)
|
|
|
+
|
|
|
if token is None:
|
|
|
return response.json(444)
|
|
|
|
|
@@ -35,8 +41,7 @@ class AppLogView(View):
|
|
|
if token.code != 0:
|
|
|
return response.json(token.code)
|
|
|
|
|
|
- if operation == 'getUploadUrl':
|
|
|
- return self.get_upload_url(token.userID, request_dict, response)
|
|
|
+
|
|
|
elif operation == 'add':
|
|
|
return self.do_add(token.userID, request_dict, response)
|
|
|
elif operation == 'queryByAdmin':
|
|
@@ -50,17 +55,28 @@ class AppLogView(View):
|
|
|
|
|
|
def get_upload_url(self, userID, request_dict, response):
|
|
|
upload_type = request_dict.get('upload_type', None)
|
|
|
- if upload_type:
|
|
|
- auth = oss2.Auth(OSS_STS_ACCESS_KEY, OSS_STS_ACCESS_SECRET)
|
|
|
- bucket = oss2.Bucket(auth, 'oss-cn-hongkong.aliyuncs.com', 'statres')
|
|
|
- name = CommonService.createOrderID()
|
|
|
- filename = str(name) + '.' + upload_type
|
|
|
- obj = 'app_log/{userID}/'.format(userID=userID) + filename
|
|
|
-
|
|
|
- url = bucket.sign_url('PUT', obj, 7200)
|
|
|
- return response.json(0, {'put_url': url, 'filename': filename})
|
|
|
- else:
|
|
|
+ if not upload_type:
|
|
|
return response.json(444)
|
|
|
+ name = CommonService.createOrderID()
|
|
|
+ filename = str(name) + '.' + upload_type
|
|
|
+ obj = 'app_log/{userID}/'.format(userID=userID) + filename
|
|
|
+ aws_s3_client = boto3.client(
|
|
|
+ 's3',
|
|
|
+ region_name=REGION_NAME,
|
|
|
+ aws_access_key_id=ACCESS_KEY_ID,
|
|
|
+ aws_secret_access_key=SECRET_ACCESS_KEY,
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ )
|
|
|
+ response_url = aws_s3_client.generate_presigned_url(
|
|
|
+ ClientMethod='put_object',
|
|
|
+ Params={
|
|
|
+ 'Bucket': 'ansjer-statres',
|
|
|
+ 'Key': obj
|
|
|
+ },
|
|
|
+ ExpiresIn=3600
|
|
|
+ )
|
|
|
+ return response.json(0, {'put_url': response_url, 'filename': filename})
|
|
|
+
|
|
|
|
|
|
def do_add(self, userID, request_dict, response):
|
|
|
uid = request_dict.get('uid', None)
|