|
@@ -12,7 +12,7 @@ from django.views import View
|
|
|
from Ansjer.config import CRCKey, CONFIG_INFO, CONFIG_US, CONFIG_EUR, \
|
|
|
CONFIG_CN, USED_SERIAL_REDIS_LIST, UNUSED_SERIAL_REDIS_LIST, SERVER_DOMAIN_US, REGION_ID_LIST, SERVER_DOMAIN_TEST, \
|
|
|
SERVER_DOMAIN_LIST, SERVER_DOMAIN_CN, SERVER_DOMAIN_EUR, RESET_REGION_ID_SERIAL_REDIS_LIST, LOGGER, CONFIG_TEST, \
|
|
|
- SERVER_DOMAIN
|
|
|
+ SERVER_DOMAIN, HUAWEICLOUD_AK, HUAWEICLOUD_SK, HUAWEICLOUD_OBS_SERVER, HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET
|
|
|
from Controller.CheckUserData import DataValid
|
|
|
from Controller.UnicomCombo.UnicomComboController import UnicomComboView
|
|
|
from Model.models import SerialNumberModel, CompanySerialModel, UIDCompanySerialModel, UIDModel, Device_Info, \
|
|
@@ -78,8 +78,8 @@ class SerialNumberView(View):
|
|
|
return self.get_iot_core_by_serial_number(request_dict, response)
|
|
|
elif operation == 'saveUserNetInfo':
|
|
|
return self.save_user_net_info(request_dict, response)
|
|
|
- elif operation == 'getBaiduBigModelLicense':
|
|
|
- return self.get_baidu_big_model_license(request_dict, response)
|
|
|
+ elif operation == 'getBaiduBigModelLicenseUrl':
|
|
|
+ return self.get_baidu_big_model_license_url(request_dict, response)
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
@@ -1116,9 +1116,9 @@ class SerialNumberView(View):
|
|
|
UidSetModel.objects.create(uid=uid, nickname=nickname)
|
|
|
|
|
|
@staticmethod
|
|
|
- def get_baidu_big_model_license(request_dict, response):
|
|
|
+ def get_baidu_big_model_license_url(request_dict, response):
|
|
|
"""
|
|
|
- 获取百度大模型许可证
|
|
|
+ 获取百度大模型许可证下载链接
|
|
|
@param request_dict: 请求参数
|
|
|
@param response: 响应对象
|
|
|
@request_dict serial_number: 序列号
|
|
@@ -1129,26 +1129,42 @@ class SerialNumberView(View):
|
|
|
return response.json(444)
|
|
|
try:
|
|
|
# 同个序列号返回相同license
|
|
|
- baidu_big_model_license_qs = BaiduBigModelLicense.objects.filter(serial=serial).values('license')
|
|
|
+ baidu_big_model_license_qs = BaiduBigModelLicense.objects.filter(serial=serial).values('license_name')
|
|
|
if baidu_big_model_license_qs.exists():
|
|
|
- baidu_license = baidu_big_model_license_qs[0]['license']
|
|
|
+ license_name = baidu_big_model_license_qs[0]['license_name']
|
|
|
else:
|
|
|
# 查询未被使用的license,使用事务和行锁避免并发问题
|
|
|
with transaction.atomic():
|
|
|
baidu_big_model_license_qs = BaiduBigModelLicense.objects.filter(
|
|
|
- serial=''
|
|
|
+ serial='', use_status=0
|
|
|
).select_for_update().order_by('id').first()
|
|
|
if not baidu_big_model_license_qs:
|
|
|
return response.json(173)
|
|
|
- baidu_license = baidu_big_model_license_qs.license
|
|
|
+ license_name = baidu_big_model_license_qs.license_name
|
|
|
# 更新数据为已使用
|
|
|
now_time = int(time.time())
|
|
|
baidu_big_model_license_qs.serial = serial
|
|
|
+ baidu_big_model_license_qs.use_status = 1
|
|
|
baidu_big_model_license_qs.updated_time = now_time
|
|
|
baidu_big_model_license_qs.save()
|
|
|
|
|
|
+ # 生成华为云OBS临时下载链接
|
|
|
+ from obs import ObsClient
|
|
|
+ obs_client = ObsClient(
|
|
|
+ access_key_id=HUAWEICLOUD_AK,
|
|
|
+ secret_access_key=HUAWEICLOUD_SK,
|
|
|
+ server=HUAWEICLOUD_OBS_SERVER
|
|
|
+ )
|
|
|
+ expires = 3600 # 链接有效期1小时
|
|
|
+ download_url = obs_client.createSignedUrl(
|
|
|
+ 'GET',
|
|
|
+ HUAWEICLOUD_BAIDU_BIG_MODEL_LICENSE_BUKET,
|
|
|
+ license_name,
|
|
|
+ expires
|
|
|
+ )
|
|
|
+
|
|
|
res = {
|
|
|
- 'license': baidu_license
|
|
|
+ 'license_url': download_url.signedUrl
|
|
|
}
|
|
|
|
|
|
return response.json(0, res)
|