【问题标题】:UWP: Upload large files to OneDrive using OneDrive SDKUWP:使用 OneDrive SDK 将大文件上传到 OneDrive
【发布时间】:2017-04-08 06:24:04
【问题描述】:

我可以使用以下代码上传“小”文件(

await OneDriveClient
      .Drive
      .Special
      .AppRoot
      .Children["filename"]
      .Content
      .Request()
      .PutAsync<Item>(contentStream);

对于大文件 (> 100 MB),我了解到您必须创建一个 Upload Session。 像这样?

UploadSession uSession = await OneDriveClient
                               .Drive
                               .Special
                               .AppRoot
                               .Children["filename"]
                               .CreateSession(VarChunkedUploadSessionDescriptor)
                               .Request()
                               .PostAsync();

我不确定这之后的步骤是什么? (甚至这是正确的一步!)。会很感激一些勺子喂养:) 提前致谢!

【问题讨论】:

标签: c# win-universal-app onedrive


【解决方案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; 
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多