我可以使用以下代码上传“小”文件(<100 MB):
await OneDriveClient
.Drive
.Special
.AppRoot
.Children["filename"]
.Content
.Request()
.PutAsync<Item>(contentStream);
对于大文件(&gt; 100 MB),我读到您必须创建Upload Session
。
像这样的东西?
UploadSession uSession = await OneDriveClient
.Drive
.Special
.AppRoot
.Children["filename"]
.CreateSession(VarChunkedUploadSessionDescriptor)
.Request()
.PostAsync();
我不确定此后的步骤是什么? (甚至这是正确的一步!)。会感激一些勺子喂:)在提前感谢!
答案 0 :(得分:1)
sdk对此有点困惑。注意,ItemWithPath没有驱动根....
//uploadPath = "/documentname.docx";
//filename = "documentname.docx";
var request = service.OneDriveClient.Drive.Root.ItemWithPath(uploadPath).CreateSession(new ChunkedUploadSessionDescriptor() { Name = Uri.EscapeUriString(System.IO.Path.GetFileName(filename)) }).Request();
var session = request.PostAsync().Result;
using (var stream = new System.IO.FileStream(filename, System.IO.FileMode.Open))
{
if (stream != null)
{
Microsoft.OneDrive.Sdk.Helpers.ChunkedUploadProvider chunk = new Microsoft.OneDrive.Sdk.Helpers.ChunkedUploadProvider(
session, client, stream);
var item = chunk.UploadAsync().Result;
}
}