Sharepoint : 在特定驱动器中使用图形创建一个新文件 API
Sharepoint : create a new file in a specific drive with graph API
为了在驱动器中创建一个新文件(一个包含一些内容的简单文本文件),我尝试使用 MS Graph 调用 API。
PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content
我要放置文件的驱动器名称为“myFolder”,驱动器 ID 为:
b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz
此驱动器位于根站点中。
这里:
- {站点 ID}:“root”
- {parent-id} : 是父驱动器的 ID
- {文件名} : text.txt
如果我必须在子站点中创建此文件,它会
- {site-id}:/sites/{subsite-id}/drive/items/{parent-id}:/{filename}:/content
所以理论上我的 URL 应该是这样的 :
https://graph.microsoft.com/v1.0/sites/root/drives/b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz:/text.txt:/content
这里:
- {站点 ID}:“root”
- {parent-id} : 是父驱动器的 ID
- {文件名} : text.txt
我也将请求头Content-Type定义为text/plain
我的问题是我检索到一条错误消息:
{
"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"
}
}
}
这是预期的错误,因为要在驱动器(在 SharePoint 中为 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
文件夹
参考资料
您可以使用以下端点直接在子站点库中创建文件:
https://graph.microsoft.com/v1.0/sites/{sub-siteid}/drives/{driveid}/root:/FolderA/FileB.txt:/content
而如果你想获取subsite id,你可以参考:
演示请求:
为了在驱动器中创建一个新文件(一个包含一些内容的简单文本文件),我尝试使用 MS Graph 调用 API。
PUT /sites/{site-id}/drive/items/{parent-id}:/{filename}:/content
我要放置文件的驱动器名称为“myFolder”,驱动器 ID 为:
b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz
此驱动器位于根站点中。
这里:
- {站点 ID}:“root”
- {parent-id} : 是父驱动器的 ID
- {文件名} : text.txt
如果我必须在子站点中创建此文件,它会
- {site-id}:/sites/{subsite-id}/drive/items/{parent-id}:/{filename}:/content
所以理论上我的 URL 应该是这样的 :
https://graph.microsoft.com/v1.0/sites/root/drives/b!e5bDF5eRbU2Y7P3gHeS-0F1abPhpWXdOvSUViyWpqX876IbeJvIPS5-tf--QTQiz:/text.txt:/content
这里:
- {站点 ID}:“root”
- {parent-id} : 是父驱动器的 ID
- {文件名} : text.txt
我也将请求头Content-Type定义为text/plain 我的问题是我检索到一条错误消息:
{
"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"
}
}
}
这是预期的错误,因为要在驱动器(在 SharePoint 中为 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
文件夹
参考资料
您可以使用以下端点直接在子站点库中创建文件:
https://graph.microsoft.com/v1.0/sites/{sub-siteid}/drives/{driveid}/root:/FolderA/FileB.txt:/content
而如果你想获取subsite id,你可以参考:
演示请求: