2013-03-11 3 views
2

Python Google 드라이브 API를 사용하여 파일의 원격 경로를 작성하려고합니다. 주어진 경로를 말하자면 /folderA/FolderB/folderC/theFile.txt folderC를 Drive에 작성한 다음 folderB를 작성한 다음 B를 folderC로 작성한 다음 folderC에 파일을 업로드합니다. 건물 경로 - Google 드라이브 SDK

나는 짧은 루프가 있습니다

currentParent = pathStartID 
for aFolder in pathArray: 
    thisFoldersID = self.createRemoteFolder(aFolder, parentID = currentParent) 
    currentParent = thisFoldersID 

내가 먼저 드라이브 루트에 폴 데라를 생성, 그리고 폴 데라의 ID는 'pathStartID'입니다. pathArray는 folderB 및 folderC의 이름을 포함합니다.

createRemoteFolder() 

은 다음과 같습니다

def createRemoteFolder(self, folderName, parentID = None): 
    # Create a folder on Drive, returns the newely created folders ID 
    body = { 
     'title': folderName, 
     'mimeType': "application/vnd.google-apps.folder" 
    } 
    if parentID: 
     body['parentsCollection'] = [{'id': parentID}] 
     root_folder = driveFileMan.client.files().insert(body = body).execute() 
    return root_folder['id'] 

을하지만, 어떤 이유로 모든 폴더가 Google 드라이브의 루트에 생성되고, 내가 원하지 상위 폴더처럼.

내가 뭘 잘못하고 있는지 알아낼 수 있습니까? 아니면 이것을 할 수있는 더 쉬운 방법이 있습니까?

답변

1

부모 설정에 대한 잘못된 속성 이름처럼 보입니다. 시도해보기 :

body['parents'] = [{'id': parentID}] 
+0

나는 여기를 보았어 야했다. 위대한, 도움을 주셔서 감사합니다, 트릭을 한 :) – Cian