SharePoint API调用文件上载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SharePoint API调用文件上载相关的知识,希望对你有一定的参考价值。

我正在Django中构建一个应用程序并尝试将文件上传到SharePoint Online站点,但我确信我(至少)得到了API调用的错误。我在dev.microsoft.com中拥有分配给应用程序的相应权限,但在尝试上传时返回500响应。

这是我尝试使用PUT / sites / {site-id} / drive / items / {parent-id}的基本api调用:/ {filename}:/ content

我有点使用这两个资源来构建url但不确定site-id或parent-id。对于{YourSharepointTenant},我从属性的Azure门户获得了租户ID。它是我在我发布的代码中省略的一长串字符

https://www.coderedcorp.com/blog/uploading-files-to-sharepoint-with-django-and-pyth/

https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/driveitem_put_content

这是我的代码

def save(self, *args, **kwargs):
     # Get the authenticated user credentials from office365-allauth
    social = request.user.social_auth.get(provider='office365')
    access_token = social.extra_data['access_token']

    # build our header for the api call
    headers = {
        'Authorization' : 'Bearer {0}'.format(access_token),
    }

    # build the url for the api call
    # Look at https://dev.onedrive.com/items/upload_put.htm for reference
    url = 'https://{YourSharepointTenant}.sharepoint.com/sites/ITSupport/drive/root:/' + design_document + ':/content'
    # Make the api call
    response = requests.put(url, data=open(design_document, 'rb'), headers=headers)
    return response

    super(LaserMaskDesign, self).save(*args, **kwargs)
答案

当您定位图表时,您应该使用该网址而不是https://graph.microsoft.com/beta/sites/siteid/drive ....这是您的入口点的网站API,它将为您提供对驱动器的访问权限。请记住,API处于测试阶段,因此尚未准备就绪。有关此API的更多文档,请访问https://developer.microsoft.com/en-us/graph/docs/api-reference/beta/resources/sharepoint

以上是关于SharePoint API调用文件上载的主要内容,如果未能解决你的问题,请参考以下文章

powershell 在客户端对象模型的sharepoint中设置文件上载大小

怎么使用Sharepoint实现一次上载多个文档

powershell 完整的Sharepoint Framework SPFX Bundle使用Gulp和Powershell构建上载部署过程

如何在 SharePoint 框架 Web 部件中调用 SharePoint 搜索 API 以获取最近的新闻?

Windows SharePoint Services适配器运行时没有调用适配器Web服务的权限

SharePoint REST API。在 SharePoint 列表上进行 AJAX 调用时出现 400 错误请求