Эх сурвалжийг харах

pc版本删除功能接口

locky 3 жил өмнө
parent
commit
20680f5ad5

+ 35 - 3
AdminController/VersionManagementController.py

@@ -4,10 +4,12 @@ import os
 import hashlib
 import time
 
+import boto3
+import botocore
 from django.db import transaction
 from django.views.generic.base import View
 
-from Ansjer.config import BASE_DIR
+from Ansjer.config import BASE_DIR, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
 from Object.TokenObject import TokenObject
 from Object.ResponseObject import ResponseObject
 from Service.CommonService import CommonService
@@ -66,7 +68,8 @@ class VersionManagement(View):
                 return self.getPcInfoList(request_dict, response)
             elif operation == 'editPcVersion':
                 return self.editPcVersion(request_dict, response)
-
+            elif operation == 'deletePcInfo':
+                return self.deletePcInfo(request_dict, response)
             else:
                 return response.json(404)
 
@@ -566,7 +569,7 @@ class VersionManagement(View):
 
         if not pc_info_id:
             return response.json(444)
-        pc_version = 1 if pc_version == 'true' else 0
+
         try:
             pc_info_qs = Pc_Info.objects.filter(id=pc_info_id)
             if not pc_info_qs.exists():
@@ -591,3 +594,32 @@ class VersionManagement(View):
         except Exception as e:
             print(e)
             return response.json(500, repr(e))
+
+    def deletePcInfo(self, request_dict, response):
+        print('request_dict:', request_dict)
+        pc_info_id = request_dict.get('id', None)
+
+        try:
+            if not pc_info_id:
+                return response.json(444)
+            pc_info_qs = Pc_Info.objects.filter(id=pc_info_id)
+            if not pc_info_qs.exists():
+                return response.json(173)
+            # 删除存储桶的文件
+            Key = pc_info_qs.values('download_link')[0]['download_link']
+            # pc_info_qs.delete()
+            aws_s3_client = boto3.client(
+                's3',
+                region_name='cn-northwest-1',
+                aws_access_key_id=AWS_ACCESS_KEY_ID[0],
+                aws_secret_access_key=AWS_SECRET_ACCESS_KEY[0],
+                config=botocore.client.Config(signature_version='s3v4'),
+            )
+
+            try:
+                aws_s3_client.delete_object(Bucket='pc-package', Key=Key)
+            finally:
+                return response.json(0)
+        except Exception as e:
+            print(e)
+            return response.json(500, repr(e))