Я использую общую точку rest api
для получения файлов и папок из библиотеки общих точек. У меня есть две библиотеки (с GUID
), и это конечная точка API, которую я использую:
/_api/web/GetFolderById('{$guid}')?\$expand=Folders,Files
api
возвращает все папки и файлы, как и ожидалось, для первой библиотеки с guid
библиотекой, но проблема для второй - она возвращает эту ошибку, даже если я использую конечную точку папки:
{
"error": {
"code": "-2147024894, System.IO.FileNotFoundException",
"message": {
"lang": "en-EN",
"value": "File Not Found."
}
}
}
Я также использовал конечную точку getfolderbyserverrelativeurl
с относительными путями к папкам. эта конечная точка возвращает ожидаемые результаты для первой папки, но эта ошибка для второй:
{
"error": {
"code": "-2147024891, System.UnauthorizedAccessException",
"message": {
"lang": "en-EN",
"value": "Access denied. You do not have permission to perform this action or access this resource."
}
}
}
Обратите внимание, что я могу просматривать вторую папку в Интернете с теми же учетными данными (username
и password
).
Итак, вот мой вопрос: есть ли другой способ получить все файлы и папки, используя точку общего доступа rest api
? если нет, то в чем заключается ошибка в моих подходах?
2 ответа
Путь к конечным точкам api
для семейств сайтов отличается от основного сайта. например, если вы хотите получить доступ к папке A
в семействе сайтов B
, вы должны использовать эту конечную точку для получения корневой папки GUID
:
http://sitename/sites/collection_name/_api/web/lists(guid'7EA06E82-C7C1-41FE-AF8B-C3341E928D6A')/rootFolder
А затем используйте эту конечную точку с корневой папкой GUID
, чтобы получить все файлы и папки:
http://sitename/sites/collection_name/_api/web/GetFolderById('26728694-ee8e-4618-a524-5ea6ba545384')?$expand=Folders/ListItemAllFields,Files/ListItemAllFields
Вы можете использовать эту конечную точку, чтобы получить все подпапки внутри библиотеки, а затем найти папку Unique Id:
/ _Api / веб / списки / GetByTitle ( ' Документы ') / RootFolder / папки? $ = Расширение ListItemAllFields
Используйте этот уникальный идентификатор внутри GetFolderById, как показано ниже, работает в мою сторону:
/ _Api / веб / GetFolderById ( ' 6a7de691-321a - 41e9-8927-5594082d5a94 ')? $ Развернуть = Папки , файлы
Похожие вопросы
Новые вопросы
rest
REST (Transfer State Transfer) - это стиль архитектуры программного обеспечения для распределенных гипермедиа систем, таких как World Wide Web. Его популярность возросла по сравнению с архитектурами RPC, такими как SOAP, из-за внутренней разобщенности клиента с сервером, возникающей из-за наличия единого интерфейса между гетерогенными системами.