|
@@ -18,6 +18,7 @@ from django.http import HttpResponse, JsonResponse
|
|
|
from django.utils.decorators import method_decorator
|
|
|
from django.views.decorators.csrf import csrf_exempt
|
|
|
from django.views.generic.base import View
|
|
|
+from botocore import client
|
|
|
|
|
|
from Ansjer.cn_config.config_test import REGION_NAME2
|
|
|
from Ansjer.config import (
|
|
@@ -169,6 +170,8 @@ class testView(View):
|
|
|
return self.unionpayback(request_dict, response)
|
|
|
elif operation == 'uploadAVSS': # 银联回调
|
|
|
return self.uploadAVSS(request, response)
|
|
|
+ elif operation == 'oci_oss': # 生成oci oss预签名链接
|
|
|
+ return self.oci_oss(request, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -1163,3 +1166,34 @@ class testView(View):
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def oci_oss(request, response):
|
|
|
+ aws_access_key_id = '36edb60759487f3a2668ff7ab8da33238f902ff1'
|
|
|
+ secret_access_key = 'NoCObsbQymztD/RxTWvFXVl854HOW78Ch9allKOZJn4='
|
|
|
+ region_name = 'us-phoenix-1'
|
|
|
+ try:
|
|
|
+ s3_client = boto3.client(
|
|
|
+ 's3',
|
|
|
+ aws_access_key_id=aws_access_key_id,
|
|
|
+ aws_secret_access_key=secret_access_key,
|
|
|
+ config=botocore.client.Config(signature_version='s3v4'),
|
|
|
+ region_name=region_name,
|
|
|
+ endpoint_url='https://servers.compat.objectstorage.us-phoenix-1.oraclecloud.com'
|
|
|
+ )
|
|
|
+ # 存储桶
|
|
|
+ bucket = 'push'
|
|
|
+ key = 'test.jpeg'
|
|
|
+ client_method = 'put_object'
|
|
|
+ # pre_signed_url = s3_client.generate_file_obj_url(bucket, key, client_method, 24*3600)
|
|
|
+ pre_signed_url = s3_client.generate_presigned_url(
|
|
|
+ ClientMethod=client_method,
|
|
|
+ ExpiresIn=7*24*3600,
|
|
|
+ Params={
|
|
|
+ 'Bucket': bucket,
|
|
|
+ 'Key': key
|
|
|
+ }
|
|
|
+ )
|
|
|
+ return response.json(0, pre_signed_url)
|
|
|
+ except Exception as e:
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|