浏览代码

生成oci oss预签名链接测试接口

locky 1 年之前
父节点
当前提交
eebea266fd
共有 1 个文件被更改,包括 34 次插入0 次删除
  1. 34 0
      Controller/TestApi.py

+ 34 - 0
Controller/TestApi.py

@@ -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)))