Python-将文件上传到Google Team Drive

Ale*_*den 2 python google-drive-api

我正在尝试通过Python API将文件上传到特定的Team Drive,但在指定teamDriveId的位置上很费劲。我正在使用Drive v3。

这是我正在使用的功能:

def upload_file(self):
    # self.service: Google Drive Hook - works well for other functions
    # self.drive_id: Id of Team Drive I am trying to upload to

    metadata = {'name': 'sample.txt'}
    media = MediaFileUpload('sample.txt', mimetype = 'text/plain')
    upload = self.service.files().create(body=metadata, 
                                         supportsTeamDrives=True,
                                         media_body=media,
                                         fields='id).execute()
Run Code Online (Sandbox Code Playgroud)

我试图将其同时放入create()函数和metadataJSON中,{'parents': self.drive_id}但返回一个Unexpected keyword argument: teamDriveId或文件将仅上传到我的个人驱动器中。

我要使用的Team Drive内没有任何文件夹。我看起来可以设置,{parents': <teamDrive_folderId>}但是我希望找到一种无需指定文件夹的解决方案,而只需将文件放在Team Drive的根目录即可。

任何建议将不胜感激。

dor*_*ian 6

设置parents为Team Drive的ID对我有用,并将文件插入到Team Drive的根目录中。最小示例:

# media is a `MediaFileUpload` instance
service.files().create(
    supportsTeamDrives=True,
    media_body=media,
    body={
        'parents': ['0AILoX...'],  # ID of the Team Drive
        'name': 'foo.txt'
    }
).execute()
Run Code Online (Sandbox Code Playgroud)

您确定获得正确的ID吗?