|
@@ -14,6 +14,9 @@ from background.serializers import ProductInfoSerializer, VideoInSerializer, Qui
|
|
|
from background.models import ProductInfo, VideoInfo, QuickStartInfo, UpgradeFirmwareInfo, WechatUserInfo
|
|
|
from rest_framework.response import Response
|
|
|
|
|
|
+s3_obj = AmazonS3Util()
|
|
|
+bucket = 'ansjerfilemanager'
|
|
|
+
|
|
|
|
|
|
class ProductInfoSet(ModelViewSet):
|
|
|
queryset = ProductInfo.objects.all()
|
|
@@ -34,34 +37,52 @@ class QuickStartInfoSet(ModelViewSet):
|
|
|
serializer_class = QuickStartInfoSerializer
|
|
|
filterset_fields = ['id', 'product_info_id', 'title']
|
|
|
|
|
|
+ def create(self, request, *args, **kwargs):
|
|
|
+ link = request.data.get('link')
|
|
|
+ file_key = 'vsees/quick_start_file/{}'.format(link)
|
|
|
+ s3_obj.upload_file_obj(bucket, file_key, link, extra_args={'ACL': 'public-read'})
|
|
|
+ request.data['link'] = 'https://ansjerfilemanager.s3.amazonaws.com/vsees/quick_start_file/{}'.format(link)
|
|
|
+ serializer = self.get_serializer(data=request.data)
|
|
|
+ serializer.is_valid(raise_exception=True)
|
|
|
+ self.perform_create(serializer)
|
|
|
+ return Response(serializer.data)
|
|
|
+
|
|
|
+ def update(self, request, *args, **kwargs):
|
|
|
+ link = request.data.get('link')
|
|
|
+ file_key = 'vsees/quick_start_file/{}'.format(link)
|
|
|
+ s3_obj.upload_file_obj(bucket, file_key, link, extra_args={'ACL': 'public-read'})
|
|
|
+ request.data['link'] = 'https://ansjerfilemanager.s3.amazonaws.com/vsees/quick_start_file/{}'.format(link)
|
|
|
+ serializer = self.get_serializer(data=request.data, instance=self.get_object())
|
|
|
+ serializer.is_valid(raise_exception=True)
|
|
|
+ self.perform_update(serializer)
|
|
|
+ return Response(serializer.data)
|
|
|
+
|
|
|
|
|
|
class UpgradeFirmwareInfoSet(ModelViewSet):
|
|
|
queryset = UpgradeFirmwareInfo.objects.all()
|
|
|
serializer_class = UpgradeFirmwareInfoSerializer
|
|
|
filterset_fields = ['id', 'product_info_id', 'title']
|
|
|
- # authentication_classes = [MyAuthentication, ]
|
|
|
|
|
|
-
|
|
|
-class GetUploadUrlView(APIView):
|
|
|
- def get(self, request):
|
|
|
- file_name = request.GET.get('file_name', None)
|
|
|
- file_type = request.GET.get('file_type', None)
|
|
|
- if not all([file_name]):
|
|
|
- return Response({'code': 444, 'result': {'error_msg': 'file_name参数有误'}})
|
|
|
- try:
|
|
|
- s3_obj = AmazonS3Util()
|
|
|
- if file_type == '1': # 说明书
|
|
|
- key_name = 'vsees/quick_start_file/{file_name}'.format(file_name=file_name)
|
|
|
- elif file_type == '2': # 升级文件
|
|
|
- key_name = 'vsees/upgrade_firmware_file/{file_name}'.format(file_name=file_name)
|
|
|
- else:
|
|
|
- return Response({'code': 444, 'result': {'error_msg': 'file_type参数有误'}})
|
|
|
- bucket_name = 'ansjerfilemanager'
|
|
|
- upload_url = s3_obj.generate_put_obj_url(bucket_name, key_name)
|
|
|
- return Response({'code': 0, 'result': {'uploadUrl': upload_url}})
|
|
|
- except Exception as e:
|
|
|
- return Response(
|
|
|
- {'code': 500, 'result': {'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e))}})
|
|
|
+ # authentication_classes = [MyAuthentication, ]
|
|
|
+ def create(self, request, *args, **kwargs):
|
|
|
+ link = request.data.get('link')
|
|
|
+ file_key = 'vsees/upgrade_firmware_file/{}'.format(link)
|
|
|
+ s3_obj.upload_file_obj(bucket, file_key, link, extra_args={'ACL': 'public-read'})
|
|
|
+ request.data['link'] = 'https://ansjerfilemanager.s3.amazonaws.com/vsees/upgrade_firmware_file/{}'.format(link)
|
|
|
+ serializer = self.get_serializer(data=request.data)
|
|
|
+ serializer.is_valid(raise_exception=True)
|
|
|
+ self.perform_create(serializer)
|
|
|
+ return Response(serializer.data)
|
|
|
+
|
|
|
+ def update(self, request, *args, **kwargs):
|
|
|
+ link = request.data.get('link')
|
|
|
+ file_key = 'vsees/upgrade_firmware_file/{}'.format(link)
|
|
|
+ s3_obj.upload_file_obj(bucket, file_key, link, extra_args={'ACL': 'public-read'})
|
|
|
+ request.data['link'] = 'https://ansjerfilemanager.s3.amazonaws.com/vsees/upgrade_firmware_file/{}'.format(link)
|
|
|
+ serializer = self.get_serializer(data=request.data, instance=self.get_object())
|
|
|
+ serializer.is_valid(raise_exception=True)
|
|
|
+ self.perform_update(serializer)
|
|
|
+ return Response(serializer.data)
|
|
|
|
|
|
|
|
|
class WechatLoginView(APIView):
|