提交 6c3ecf1b authored 作者: lc.zhou's avatar lc.zhou

ils-video-recorder:新增阿里云oss上传失败 重试

上级 ae4e1b2d
...@@ -13,6 +13,17 @@ config = settings.get('ALI_OSS', {}) ...@@ -13,6 +13,17 @@ config = settings.get('ALI_OSS', {})
region = config.get('region', 'hangzhou') region = config.get('region', 'hangzhou')
local_endpoint = config.get('endpoint', local_endpoint.format(region)) local_endpoint = config.get('endpoint', local_endpoint.format(region))
def _retry(func):
@wraps(func)
def wraper(*args, **kw):
try:
res = func(*args, **kw)
except RequestError as e:
log.exception(e)
_get_bucket.cache_clear()
res = None
return res
return wraper
@lru_cache() @lru_cache()
def _get_bucket(bucket_name=None, l_region=None): def _get_bucket(bucket_name=None, l_region=None):
...@@ -22,7 +33,7 @@ def _get_bucket(bucket_name=None, l_region=None): ...@@ -22,7 +33,7 @@ def _get_bucket(bucket_name=None, l_region=None):
endpoint, bucket_name) endpoint, bucket_name)
return bucket return bucket
@_retry
def oss_upload_file(origin_file, local_file): def oss_upload_file(origin_file, local_file):
""" 上传文件 """ 上传文件
...@@ -38,7 +49,7 @@ def oss_upload_file(origin_file, local_file): ...@@ -38,7 +49,7 @@ def oss_upload_file(origin_file, local_file):
origin_file_url = '' origin_file_url = ''
return origin_file_url return origin_file_url
@_retry
def oss_delete_file(origin_file): def oss_delete_file(origin_file):
""" 删除单个文件 """ 删除单个文件
""" """
...@@ -53,7 +64,7 @@ def oss_delete_file(origin_file): ...@@ -53,7 +64,7 @@ def oss_delete_file(origin_file):
res = oss_batch_delete_files([origin_file], bucket_name, region) res = oss_batch_delete_files([origin_file], bucket_name, region)
return True if len(res) > 0 else False return True if len(res) > 0 else False
@_retry
def oss_batch_delete_files(files_list, bucket_name=None, l_region=None): def oss_batch_delete_files(files_list, bucket_name=None, l_region=None):
""" 批量删除云端文件 """ 批量删除云端文件
""" """
...@@ -68,7 +79,7 @@ def oss_batch_delete_files(files_list, bucket_name=None, l_region=None): ...@@ -68,7 +79,7 @@ def oss_batch_delete_files(files_list, bucket_name=None, l_region=None):
result = bucket.batch_delete_objects(bucket_files) result = bucket.batch_delete_objects(bucket_files)
return result.deleted_keys return result.deleted_keys
@_retry
def oss_download_file(origin_file, local_file): def oss_download_file(origin_file, local_file):
""" """
下载视频文件 下载视频文件
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论