将文件上载到默认OneDrive REST以外的文件夹

时间:2015-02-22 10:43:29

标签: c# onedrive

所以我将文件放到一个驱动器上,我的URI看起来像 https://apis.live.net/v5.0/me/skydrive/files/?access_token=12345

但是,如果我尝试将文件夹更改为,例如,Documents:

https://apis.live.net/v5.0/me/skydrive/files/Documents?access_token=12345

https://apis.live.net/v5.0/me/skydrive/Documents/files?access_token=12345

我将收到HTTP 400(错误的请求错误)。

一个"解决方法"可以查询onedrive的顶级目录,通过从第一个URI读取JSON响应来完成,然后为所需的文件夹取出upload_location,但是我觉得这有点长啰嗦。来自上传文件部分 https://msdn.microsoft.com/en-us/library/dn659726.aspx 我得到的印象是我应该能够指定一个友好的文件夹路径。

我很肯定这是一个非常简单的答案,但我已经浪费了足够长的时间,并希望这将成为那些有相同问题的人的资源(避风港)除了这里没有答案的问题http://answers.microsoft.com/en-us/onedrive/forum/sdfiles-sdupload/how-to-upload-a-file-to-a-specific-folder-created/0d57e43c-a3ec-42fc-b3b7-f15a17b2836f

之外能够找到其他地方

由于

2 个答案:

答案 0 :(得分:1)

根据您的示例,我认为您只需要更改文档 - > my_documents然后场景将像你想要的那样工作。以下是documentation的相关摘录。

使用友好名称访问某些OneDrive文件夹 要访问某些OneDrive文件夹,您可以使用友好名称而不是文件夹ID。使用以下友好名称访问OneDrive UI中的这些相应文件夹:

  • USER_ID / skydrive / camera_roll表示OneDrive相机胶卷文件夹。
  • USER_ID / skydrive / my_documents表示Documents文件夹。
  • USER_ID / skydrive / my_photos表示图片文件夹。
  • USER_ID / skydrive / public_documents表示公共文件夹。

在每种情况下,将USER_ID替换为我的登录用户或任何其他同意用户的用户ID。 例如,要阅读Documents文件夹的属性,请使用REST API调用文件夹的ID,如下所示。

 GET https://apis.live.net/v5.0/folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!110?access_token=ACCESS_TOKEN

答案 1 :(得分:0)

尝试以下链接中列出的API: https://dev.onedrive.com/README.htm# 这些对我来说很好。