【发布时间】:2020-04-28 16:35:53
【问题描述】:
我没有将超过 4MB 的文件上传到 OneDrive,我已经成功创建文件夹、重命名、删除,甚至上传了一个 4MB 或更少的文件,但是上传超过 4MB 的文件似乎有点多复杂。我一直试图通过查看这个解决方案来理解 How to upload a large document in c# using the Microsoft Graph API rest calls
有两种解决方案。票数较高的解决方案建议使用冗长的方法(但是不推荐使用“GetChunkRequestResponseAsync”函数,并且我无法找到合适的函数来执行相同的操作),第二个解决方案使用“new LargeFileUpload”,但是当我把它放在我的代码(Visual Studio)中,它告诉我只有“LargeFileUploadTask ”存在(外观相同,但最后有一个“任务”。我不明白该放什么“任务 ???”。
无论如何,我绝对明白必须请求 uploadSession:
var uploadSession = await _client.Drive.Items[FolderID]
.ItemWithPath(Name)
.CreateUploadSession()
.Request()
.PostAsync();
var maxChunkSize = 320 * 1024; //320 KB chunk sizes
它可能涉及将数据存储到一个字节数组中,例如:
string FilePath = "D:\\MoreThan5MB.txt";
string path = FilePath;//Actual File Location in your hard drive
byte[] data = System.IO.File.ReadAllBytes(path); //Stores all data into byte array by name of "data" then "PUT to the root folder
Stream stream = new MemoryStream(data);
但我们将不胜感激任何帮助和建议。如果这意味着什么,这里有一个帮助我上传小于 4MB 的链接:How to upload to OneDrive using Microsoft Graph Api in c# 谢谢
【问题讨论】:
标签: c# file-upload microsoft-graph-api asyncfileupload