Я пытаюсь загрузить файл с клиентского сайта Sharepoint.Я использую sharepoint CSOM.
Мой код выглядит следующим образом:
using Microsoft.SharePoint.Client;
var username = "username";
var password = "pass";
var url = "https://myclient.sharepoint.com/";
var fileurl = "https://myclient.sharepoint.com/teams/folder1/folder%20x/somefile.docx";
using (ClientContext context = new ClientContext(url))
{
SecureString passWord = new SecureString();
foreach (char c in password.ToCharArray()) passWord.AppendChar(c);
context.Credentials = new SharePointOnlineCredentials(username, passWord);
Uri filename = new Uri(fileurl);
string server = filename.AbsoluteUri.Replace(filename.AbsolutePath, "");
string serverrelative = filename.AbsolutePath;
Microsoft.SharePoint.Client.File file = context.Web.GetFileByServerRelativeUrl(serverrelative);
context.Load(file);
ClientResult<Stream> streamResult = file.OpenBinaryStream();
context.ExecuteQuery();
var file2 = streamResult.Value;
}
Проблема в том, что мне отказано в доступе, но когда я вхожу с теми же учетными данными, я могу успешно загрузить файл.
- Есть ли в Sharepoint отдельное разрешение для загрузки файла из API вместо пользовательского интерфейса?
- Может ли быть проблема в имени папки?
ОБНОВЛЕНИЕ
Проверено, это не имеет никакого отношения к пробелам в папке или имени файла.