Теперь мне нужно загрузить файлы со всего диска Google на s3, и мне нужно поддерживать ту же структуру каталогов, что и на диске Google. Когда я получил файловую структуру диска Google, я обнаружил, что могу получать файлы только из каталога root слой за слоем, так что я могу получить файлы и пути к файлам полностью.
def get_folderid_path(self, parent):
children = self.get_request(q="'%s' in parents" % parent)
for child in children:
child_id = child.get("id")
child_name = child.get("name")
child_mime_type = child.get("mimeType")
if child_mime_type == "application/vnd.google-apps.folder":
self.folder_path = self.test_list[-1] + "/" + child_name
self.test_list.append(self.folder_path)
self.folder_id_path_dict[child_id] = self.folder_path
self.get_folderid_path(child_id)
elif child_mime_type == "application/octet-stream" and child_name.endswith(
".side"
):
child_file_list = self.folder_id_childlist_dict.get(parent, [])
if not child_file_list:
self.folder_id_childlist_dict[parent] = child_file_list
child_file_list.append({"id": child_id, "name": child_name})
if self.test_list:
self.test_list.pop()
I использовать рекурсивный метод, я не знаю, есть ли более удобный метод.