我们收到了大量未找到文件的错误。在调用API时,我们很难获得该文件。我们在生产中遇到这个问题,它正在影响客户。这是昨天早些时候开始几个月来我们一直称这个api没有问题。这是我们正在使用的API。
https://TENANT-my.sharepoint.com/_api/v2.0/drives/DRIVE_ID/items/FILE_ID/content
使用Postman,响应如下。本文档已正确共享,并已持续数月。我们没有改变。
抱歉,出了点问题 抱歉,您无法访问此文档。请联系与您分享的人。 技术细节
解决Microsoft SharePoint Foundation的问题。 相关ID:fb6bbf9d-d0d6-2000-cdd6-ef99686d513f
日期和时间:2016年12月9日上午9:13:02
答案 0 :(得分:2)
虽然这并没有解释API破坏的方式或原因,但在撰写本文时,OneDrive尚未承认或修复原始问题,我们的解决方案是使用@contentDownloadUrl的值来自文件并在没有授权标题的情况下调用该URL。
目前的文件说明:
"经过预验证的下载网址仅在很短的时间内(几分钟)有效,并且不需要下载授权标题。"
这不应该说"不要求",但"不得包括",因为它会更清楚。我向他们的文档提出了拉取请求。
答案 1 :(得分:0)
使用带有ItemNotFound错误的C#/ .NET SDK和“Microsoft.Graph.ServiceException”时,我们遇到了同样的问题。这是在MS在12/7上对OneDrive进行更新之后开始的。我们与O365 / OneDrive团队一起开了一张支持票。他们表示他们不知道推出的任何问题,并说我们需要联系API支持。奇怪的是它有时会起作用,可能是100次尝试中的2次。列出文件和上传仍然有效,但下载失败。
这是我们到目前为止所尝试的内容:
失败的代码行是:
var stream = await this.oneDriveClient.Drive.Items [item.Id] .Content.Request()。GetAsync();
答案 2 :(得分:0)
问题在于身份验证。这段代码似乎解决了这个问题:
var adalAuthProvider = new AdalAuthenticationProvider(
this.AadClientId,
this.AadReturnUrl);
this.oneDriveClient = new OneDriveClient(this.AadTargetUrl + "/_api/v2.0", adalAuthProvider, new HttpProvider(new HttpClientHandler { AllowAutoRedirect = true }, true));
authTask = adalAuthProvider.AuthenticateUserAsync(this.AadTargetUrl);
try
{
await authTask;
}