繁体   English   中英

Microsoft Graph 列出 OneDrive 项目的最大数量?

[英]Microsoft Graph Maximum number for List OneDrive Items?

我试图列出 Onedrive 文件夹中的所有项目。 在这个文件夹中正好有 333 个相同类型的文件。

通过 Microsoft Graph 的请求仅为此文件夹提供 200 个项目。

当我搜索文件(或文件扩展名)时,我得到的文件数量相同! 正好200。

物品/儿童有限制吗? 是否可以检索文件夹中的所有项目/子项?

OneDrive API 返回 200 个项目的默认页面大小(此处在 List Children 页面上提到)。 您应该在 JSON 对象上有一个名为 @odata.nextLink 的属性,这是您的应用程序可用于请求下一页内容(示例中剩余的 133 项)的 URL。

您还可以使用?top=500 查询字符串参数将页面大小控制为更适合您的值,或者通过将页面大小设置为更小的值(如 20 个项目)来测试此行为。

我相信我现在正在使用 Sharepoint 列表发生这种情况,因为我在列表中有 369 个项目,并且它继续返回 200 个。

def get_odata_nextLink_files(accessToken, graph_data, folders_data, files_data):
        if '@odata.nextLink' in graph_data:
            graph_data = requests.get(graph_data['@odata.nextLink'], headers={'Authorization': 'Bearer ' + accessToken}, ).json()
            drive_data = graph_data['value']
            for item in drive_data:
                if 'folder' in item:
                    folders_data.append(item)
                elif 'file' in item:
                    item.update({'size':formatBytes(item.get('size',0),1)})
                    files_data.append(item)
            get_odata_nextLink_files(accessToken, graph_data, folders_data, files_data)
        return graph_data, folders_data, files_data
        

graph_data = requests.get(user_endpoint, headers={'Authorization': 'Bearer ' + accessToken}, ).json()
graph_data, folders_data, files_data = get_odata_nextLink_files(accessToken, graph_data, folders_data, files_data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM