rest - 从 SharePoint 下载文件

标签 rest sharepoint azure sharepoint-2013 office365

我正在使用 SharePoint 的 REST API 来查询企业用户的 Office 365 SharePoint 网站内托管的文件。

我已使用 OAuth 来验证用户身份并授权应用程序,如下所述:http://msdn.microsoft.com/en-us/library/azure/dn645542.aspx

我能够通过 GET 请求成功查询 API: https://XXXXXXX.sharepoint.com/sites/xxxxx/xxxxx/myfoldername/_api/files (如您所料,请求作为授权 header 设置为“Bearer”。)

上面的查询给出了以下 JSON 结果:

{
    "odata.metadata" = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/_api/$metadata#SP.ApiData.Files";
    value =     ( 
                {
            CreatedBy =             {
                Id = 1;
                Name = “Test”;
                Puid = xxxxx;
            };
            ETag = “\”{hsdglksjfldkasnfldasknk},4\””;
            Id = JKLBbiuuu908yYHhh89YBn9n9ynynYUN;
            LastModifiedBy =             {
                Id = 1;
                Name = “XXXXX”;
                Puid = XXXXXXXXXXX;
            };
            Name = "videofile.wmv";
            Size = 56492358;
            TimeCreated = "2013-09-23T05:16:44Z";
            TimeLastModified = "2013-09-23T05:28:42Z";
            Url = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/Shared Documents/videofile.wmv";
            "odata.editLink" = "Web/Lists(guid’9568472598-2c28-489BF2-a1ae-kfjdasfkjb)/files(‘jkbvasdjfbakfndasnMNBBAMnsaldfan)”;
            "odata.id" = "https://xxxxxxxxx.sharepoint.com/sites/xxxxxxxxx/xxxxxxxxx/myfoldername/_api/Web/Lists(guid’987795-gfkjhghs-ty42398yhfo’)/files('jkbvasdjfbakfndasnMNBBAMnsaldfan')";
            "odata.type" = "MS.FileServices.File";
        })
}

(请记住,上面的内容实际上并不是 JSON,而是 JSON 解析器的文本输出)

在上面的结果中,我在value内得到了一个文件数组。部分。为了便于说明,我已将此数组缩减为一项。

您将看到每个项目代表一个文件的元数据。有一个名为 Url 的属性;然后我用它来尝试下载该文件。我创建一个 HTTP 请求,在授权 header 中附加 Bearer <access_token>但是,响应始终是 HTTP 401 UNAUTHORIZED .

请注意:我正在编写的软件实际上是使用 AFNetworking 2 的 Objective-C 编写的 AFHTTPRequestOperationManager .

有谁知道我如何实际下载该文件?我在文档中看到了对某些名为“contentUrl”的属性的引用,但未提供此属性。

谢谢 克里斯

最佳答案

您使用的是 API 的 v1 吗?从您的端点来看,您似乎正在使用预览版(v1 已于 2 周前发布;我们的文档页面上可能仍然有过时的引用资料,如果您遇到任何引用资料,请告知我们)

示例:

获取 https://{tenant}.sharepoint.com/{site-path}/_api/v1.0/Files/{file-id}/content

这是向您展示如何下载文件的文档部分的 URL:http://msdn.microsoft.com/en-us/office/office365/api/files-rest-operations#FileresourceDownloadafile

如果您有任何其他问题,请告诉我。

关于rest - 从 SharePoint 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26928822/

相关文章:

azure - Azure 中的流量管理器(经典)和流量管理器有什么区别?

asp.net-mvc - 我可以限制美国境内的人员访问我的 Azure 网站吗?

java - 内容管理系统CMS基于java的工具?

sharepoint - 如何在 SharePoint 2010 中编辑列表模板?

html - float 菜单内容高度

azure - 如何在Azure函数中的数据表上使用 "AsEnumerable()"?

java - Java 中 Microsoft Translation 的 400 响应代码

android - 法国是否支持 paypal rest-api 进行实时交易 paypal-android-sdk

oracle - 如何使用 Oracle Rest 数据服务发布 JSON

c# - 如何在 .NET 中使用 Restful 服务?