C#中的Microsoft Graph API:下载消息附件的更好方法

时间:2018-10-17 20:40:26

标签: performance api microsoft-graph message attachment

我目前通过Graph API下载邮件附件的方法是:

  1. 获取已验证用户的消息列表。
  2. 对于每个邮件ID,获取关联的附件列表 用它。仅返回名称和ID。
  3. 对于每个附件ID,获取其所有数据。这意味着还将返回诸如contentBytes和contentLocation之类的字段。
  4. 给出contentBytes中的基数64个字符串,将其转换为文件。

通过测试,我发现在第3步中获取API请求所花费的时间是我的瓶颈。这是由于在contentBytes字段中返回了大量数据。我将其称为“下载”。

2MB的文件可能需要10秒钟才能通过良好连接下载。 当我的下载速度限制为5mbps时,这可能需要一分钟的时间才能恢复。

所以我有两种想法想探究:

  1. contentLocation始终为null。据我了解,这些文件附件应具有一个URI,供我从中下载。有人知道为什么没有向我提供contentLocation吗?
  2. 如果我必须坚持使用contentBytes,那么肯定有一个解释为什么下载如此缓慢?我该怎么做才能改善它?

1 个答案:

答案 0 :(得分:0)

  

contentLocation始终为null。据我了解,这些文件附件应具有一个URI,供我从中下载。有人知道为什么没有向我提供contentLocation吗?

我已经尝试过了,它在响应正文中为null,我们可以在github issue上提交问题