Microsoft graph,使用 Python SDK 上传大文件(> 100 MB)

问题描述 投票:0回答:1

我想在 Python 中将大文件上传到 Sharepoint 文件夹。我正在使用 msgraph-sdk-python

我在 microsoft 图形文档 上找到了我想要做的示例,但在 Python 中却找不到。

在此链接上,有一个 PHP 示例,它非常接近我在 Python 中所做的事情。但我似乎无法接触像 LargeFileUploadTask() 这样的类。

我还在Python中找到了一个上传会话的Python示例(在日历部分),但我不明白我应该如何使用这种技术发送我的文件。

类似的问题已在项目 Github 存储库上打开,并针对此问题提出了解决方案。但没有真正解决这个问题。

我知道我需要创建一个 UploadSession 对象并像在 PHP 代码片段中一样使用它,但我真的不明白如何做到这一点。

这是我使用的代码,基于github问题上的解决方法,但是上传真的很慢

async def _upload_video(self, video: Video) -> None:
    try:
        if not video.is_downloaded or not video.is_processed:
            raise Exception("Video not downloaded or not processed")

        print(f"Uploading video {video.title}")

        request_body = DriveItem()
        request_body.name = video.title
        request_body.file = File()
        result = await self.app_client.drives.by_drive_id(self.drive_id).items.by_drive_item_id(
            self.trans_video_id).children.post(body=request_body)

        with open(video.path, "rb") as f:
            data = f.read()
        print(f"Uploading data to {video.title}")
        await self.app_client.drives.by_drive_id(self.drive_id).items.by_drive_item_id(result.id).content.put(
            body=data)
        print(f"Video {video.title} has been uploaded")
    except Exception as e:
        print(e)

python microsoft-graph-api
1个回答
0
投票

好像LargeFileUploadTask会在下一个版本中添加,你可以在这里查看PR,它包含了如何使用它的示例。

© www.soinside.com 2019 - 2024. All rights reserved.