代码之家  ›  专栏  ›  技术社区  ›  davidvera

Sharepoint:使用graph API在特定驱动器中创建新文件

  •  0
  • davidvera  · 技术社区  · 6 年前

    为了在驱动器中创建一个新文件(一个包含一些内容的简单文本文件),我尝试使用MS Graph调用一个API。

    PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content
    

    我要放置文件的驱动器名为“myFolder”,具有以下驱动器ID:

    b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz
    

    此驱动器位于根站点中。

    • {site id}:“根”
    • {parent id}:将作为父驱动器的驱动器的id
    • {filename}:文本。文本

    如果我必须在子网站中创建此文件,它将

    因此,理论上我的URL应该如下所示:

    https://graph.microsoft.com/v1.0/sites/root/drives/b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz:/text.txt:/content
    

    在这里:

    • {site id}:“根”
    • {parent id}:将作为父驱动器的驱动器的id
    • {filename}:文本。文本

    我的问题是检索到错误消息:

    {
      "error": {
        "code": "BadRequest",
        "message": "Resource not found for the segment 'content'.",
        "innerError": {
          "date": "2020-06-26T14:19:11",
          "request-id": "812b7ee0-3ecb-4d41-a8c5-59419b086f51"
        }
      }
    }
    
    0 回复  |  直到 6 年前
        1
  •  3
  •   Vadim Gremyachev    6 年前

    这是预期的错误,因为用于寻址驱动器中的文件(这是 document library

    https://graph.microsoft.com/v1.0/sites/root/drives/{drive-id}:/{file-name}:/content
    

    应该是

    https://graph.microsoft.com/v1.0/sites/root/drives/{drive-id}/root:/{folder-path}/{file-name}:/content
    

    其中文件夹路径对应于 Test 您的案例中的文件夹

    工具书类

    Addressing resources in a drive on OneDrive

        2
  •  1
  •   Baker_Kong    6 年前

    您可以使用以下端点在子网站库中直接创建文件:

    https://graph.microsoft.com/v1.0/sites/{sub-siteid}/drives/{driveid}/root:/FolderA/FileB.txt:/content

    参考文件: https://docs.microsoft.com/en-us/graph/api/driveitem-put-content?view=graph-rest-1.0&tabs=http#example-upload-a-new-file

    如果您想获取子网站id,可以参考:

    演示请求: enter image description here

    推荐文章