|
|
|
@ -17,9 +17,9 @@ logger = logging.getLogger(__file__) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Storage(object): |
|
|
|
|
def __init__(self, user): |
|
|
|
|
def __init__(self, user, storage_obj=None): |
|
|
|
|
try: |
|
|
|
|
self.storage = self.get_storage(user) |
|
|
|
|
self.storage = self.get_storage(user, storage_obj) |
|
|
|
|
except Exception as e: |
|
|
|
|
logger.error("get %s storage failed Exception:%s" % (user, e)) |
|
|
|
|
self.storage = None |
|
|
|
@ -48,13 +48,29 @@ class Storage(object): |
|
|
|
|
filename = filename + '.apk' |
|
|
|
|
else: |
|
|
|
|
filename = filename + '.ipa' |
|
|
|
|
try: |
|
|
|
|
return self.storage.del_file(filename) |
|
|
|
|
except Exception as e: |
|
|
|
|
logger.error("delete file %s failed Exception %s" % (filename, e)) |
|
|
|
|
|
|
|
|
|
def rename_file(self, oldfilename, newfilename): |
|
|
|
|
if self.storage: |
|
|
|
|
try: |
|
|
|
|
return self.storage.rename_file(oldfilename, newfilename) |
|
|
|
|
except Exception as e: |
|
|
|
|
logger.error("rename %s to %s failed Exception %s" % (oldfilename, newfilename, e)) |
|
|
|
|
|
|
|
|
|
def upload_file(self, local_file_full_path): |
|
|
|
|
if self.storage: |
|
|
|
|
try: |
|
|
|
|
return self.storage.upload_file(local_file_full_path) |
|
|
|
|
except Exception as e: |
|
|
|
|
logger.error("oss upload %s failed Exception %s" % (local_file_full_path, e)) |
|
|
|
|
|
|
|
|
|
def get_storage(self, user): |
|
|
|
|
def get_storage(self, user, storage_obj): |
|
|
|
|
if storage_obj: |
|
|
|
|
self.storage_obj = storage_obj |
|
|
|
|
else: |
|
|
|
|
self.storage_obj = user.storage |
|
|
|
|
if self.storage_obj: |
|
|
|
|
auth = self.get_storage_auth(self.storage_obj) |
|
|
|
@ -62,7 +78,7 @@ class Storage(object): |
|
|
|
|
base64.b64encode(json.dumps(auth).encode("utf-8")).decode("utf-8")[0:64]]) |
|
|
|
|
storage_type = self.storage_obj.storage_type |
|
|
|
|
new_storage_obj = cache.get(storage_key) |
|
|
|
|
if new_storage_obj: |
|
|
|
|
if new_storage_obj and not storage_obj: |
|
|
|
|
return new_storage_obj |
|
|
|
|
else: |
|
|
|
|
if storage_type == 1: |
|
|
|
@ -76,12 +92,12 @@ class Storage(object): |
|
|
|
|
cache.set(storage_key, new_storage_obj, 600) |
|
|
|
|
return new_storage_obj |
|
|
|
|
else: |
|
|
|
|
return self.get_default_storage(user) |
|
|
|
|
return self.get_default_storage(user, storage_obj) |
|
|
|
|
|
|
|
|
|
def get_default_storage(self, user): |
|
|
|
|
def get_default_storage(self, user, storage_obj): |
|
|
|
|
admin_obj = UserInfo.objects.filter(is_superuser=True).order_by('pk').first() |
|
|
|
|
if admin_obj and admin_obj.storage: |
|
|
|
|
return self.get_storage(admin_obj) |
|
|
|
|
return self.get_storage(admin_obj, storage_obj) |
|
|
|
|
else: |
|
|
|
|
storage_lists = THIRD_PART_CONFIG.get('storage') |
|
|
|
|
for storage in storage_lists: |
|
|
|
|