|  |  | @ -31,8 +31,8 @@ class DownloadView(APIView): | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     def get(self, request, filename): |  |  |  |     def get(self, request, filename): | 
			
		
	
		
		
			
				
					
					|  |  |  |         res = BaseResponse() |  |  |  |         res = BaseResponse() | 
			
		
	
		
		
			
				
					
					|  |  |  |         downtoken = request.query_params.get("token", None) |  |  |  |         downtoken = request.query_params.get(settings.DATA_DOWNLOAD_KEY, None) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         ftype = request.query_params.get("ftype", None) |  |  |  |         ftype = filename.split(".")[-1] | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |         if not downtoken: |  |  |  |         if not downtoken: | 
			
		
	
		
		
			
				
					
					|  |  |  |             res.code = 1004 |  |  |  |             res.code = 1004 | 
			
		
	
		
		
			
				
					
					|  |  |  |             res.msg = "缺失token" |  |  |  |             res.msg = "缺失token" | 
			
		
	
	
		
		
			
				
					|  |  | @ -40,17 +40,6 @@ class DownloadView(APIView): | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         dtoken = DownloadToken() |  |  |  |         dtoken = DownloadToken() | 
			
		
	
		
		
			
				
					
					|  |  |  |         if dtoken.verify_token(downtoken, filename): |  |  |  |         if dtoken.verify_token(downtoken, filename): | 
			
		
	
		
		
			
				
					
					|  |  |  |             if not ftype: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 file_path = os.path.join(settings.MEDIA_ROOT, filename) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 try: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     response = FileResponse(open(file_path, 'rb')) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 except Exception as e: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     print(e) |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                     response = FileResponse() |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 response['content_type'] = "application/octet-stream" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 response['Content-Disposition'] = 'attachment; filename=' + filename |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return response |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             else: |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |             if ftype == 'plist': |  |  |  |             if ftype == 'plist': | 
			
		
	
		
		
			
				
					
					|  |  |  |                 release_id = filename.split('.')[0] |  |  |  |                 release_id = filename.split('.')[0] | 
			
		
	
		
		
			
				
					
					|  |  |  |                 apptodev_obj = APPToDeveloper.objects.filter(binary_file=release_id).first() |  |  |  |                 apptodev_obj = APPToDeveloper.objects.filter(binary_file=release_id).first() | 
			
		
	
	
		
		
			
				
					|  |  | @ -63,7 +52,7 @@ class DownloadView(APIView): | 
			
		
	
		
		
			
				
					
					|  |  |  |                     bundle_id = release_obj.app_id.bundle_id |  |  |  |                     bundle_id = release_obj.app_id.bundle_id | 
			
		
	
		
		
			
				
					
					|  |  |  |                     app_version = release_obj.app_version |  |  |  |                     app_version = release_obj.app_version | 
			
		
	
		
		
			
				
					
					|  |  |  |                     name = release_obj.app_id.name |  |  |  |                     name = release_obj.app_id.name | 
			
		
	
		
		
			
				
					
					|  |  |  |                         ios_plist_bytes = make_resigned(storage.get_download_url(filename), |  |  |  |                     ios_plist_bytes = make_resigned(storage.get_download_url(filename.split('.')[0]+".ipa"), | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                                                     storage.get_download_url(release_obj.icon_url), bundle_id, |  |  |  |                                                     storage.get_download_url(release_obj.icon_url), bundle_id, | 
			
		
	
		
		
			
				
					
					|  |  |  |                                                     app_version, name) |  |  |  |                                                     app_version, name) | 
			
		
	
		
		
			
				
					
					|  |  |  |                     response = FileResponse(ios_plist_bytes) |  |  |  |                     response = FileResponse(ios_plist_bytes) | 
			
		
	
	
		
		
			
				
					|  |  | @ -82,6 +71,16 @@ class DownloadView(APIView): | 
			
		
	
		
		
			
				
					
					|  |  |  |                     response['Content-Disposition'] = 'attachment; filename=' + make_random_uuid() + '.mobileconfig' |  |  |  |                     response['Content-Disposition'] = 'attachment; filename=' + make_random_uuid() + '.mobileconfig' | 
			
		
	
		
		
			
				
					
					|  |  |  |                     return response |  |  |  |                     return response | 
			
		
	
		
		
			
				
					
					|  |  |  |                 res.msg = "mobileconifg release_id error" |  |  |  |                 res.msg = "mobileconifg release_id error" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |             else: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 file_path = os.path.join(settings.MEDIA_ROOT, filename) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 try: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     response = FileResponse(open(file_path, 'rb')) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 except Exception as e: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     print(e) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     response = FileResponse() | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 response['content_type'] = "application/octet-stream" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 response['Content-Disposition'] = 'attachment; filename=' + filename | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 return response | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |         res.code = 1004 |  |  |  |         res.code = 1004 | 
			
		
	
		
		
			
				
					
					|  |  |  |         res.msg = "token校验失败" |  |  |  |         res.msg = "token校验失败" | 
			
		
	
	
		
		
			
				
					|  |  | @ -166,7 +165,7 @@ class InstallView(APIView): | 
			
		
	
		
		
			
				
					
					|  |  |  |                                                                  udid=udid) |  |  |  |                                                                  udid=udid) | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |                 res.data = {"download_url": download_url} |  |  |  |                 res.data = {"download_url": download_url} | 
			
		
	
		
		
			
				
					
					|  |  |  |                 if download_url != "" and not download_url.endswith("mobileconifg"): |  |  |  |                 if download_url != "" and "mobileconifg" not in download_url: | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |                     set_app_download_by_cache(app_id) |  |  |  |                     set_app_download_by_cache(app_id) | 
			
		
	
		
		
			
				
					
					|  |  |  |                 return Response(res.dict) |  |  |  |                 return Response(res.dict) | 
			
		
	
		
		
			
				
					
					|  |  |  |         else: |  |  |  |         else: | 
			
		
	
	
		
		
			
				
					|  |  | 
 |