isolate into function

pull/50/head
msramalho 2022-07-14 17:45:28 +02:00
rodzic 16bd54b8d3
commit 03e542a0fc
1 zmienionych plików z 9 dodań i 11 usunięć

Wyświetl plik

@ -28,11 +28,7 @@ class GDStorage(Storage):
only support files saved in a folder for GD
S3 supports folder and all stored in the root
"""
# doesn't work if key starts with / which can happen from telethon
if key.startswith('/'):
# remove first character ie /
logger.debug(f'CDN: Found and fixing leading / on uploading a file with {key=}')
key = key[1:]
key = self.clean_key(key)
full_name = os.path.join(self.folder, key)
parent_id, folder_id = self.root_folder_id, None
@ -58,13 +54,8 @@ class GDStorage(Storage):
1. for each sub-folder in the path check if exists or create
2. upload file to root_id/other_paths.../filename
"""
# doesn't work if key starts with / which can happen from telethon
if key.startswith('/'):
# remove first character ie /
logger.debug(f'UPLOADF: Found and fixing a leading / on uploading a file with {key=}')
key = key[1:]
key = self.clean_key(key)
full_name = os.path.join(self.folder, key)
parent_id, upload_to = self.root_folder_id, None
path_parts = full_name.split(os.path.sep)
@ -90,6 +81,13 @@ class GDStorage(Storage):
# GD only requires the filename not a file reader
self.uploadf(filename, key, **kwargs)
def clean_key(self, key):
# GDrive does not work well with trailing forward slashes and some keys come with that
if key.startswith('/'):
logger.debug(f'Found and fixed a leading "/" for {key=}')
return key[1:]
return key
def _get_id_from_parent_and_name(self, parent_id: str, name: str, retries: int = 1, sleep_seconds: int = 10, use_mime_type: bool = False, raise_on_missing: bool = True, use_cache=True):
"""
Retrieves the id of a folder or file from its @name and the @parent_id folder