Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何提高使用OneDrive SDK上载大文件的速度_C#_File Upload_Microsoft Graph Api_Onedrive_Microsoft Graph Sdks - Fatal编程技术网

C# 如何提高使用OneDrive SDK上载大文件的速度

C# 如何提高使用OneDrive SDK上载大文件的速度,c#,file-upload,microsoft-graph-api,onedrive,microsoft-graph-sdks,C#,File Upload,Microsoft Graph Api,Onedrive,Microsoft Graph Sdks,使用OneDrive SDK上载大文件附件时,速度太慢 基于1GB文件,大约需要45分钟到1小时 有没有办法改善这个问题 public async Task<JObject> UploadLargeFiles(string upn, IFormFile files) { var jObject = new JObject(); int fileSize = Convert.ToInt32(files.Length); var f

使用OneDrive SDK上载大文件附件时,速度太慢

基于1GB文件,大约需要45分钟到1小时

有没有办法改善这个问题

public async Task<JObject> UploadLargeFiles(string upn, IFormFile files)
    {
        var jObject = new JObject();
        int fileSize = Convert.ToInt32(files.Length);
        var fileStream = files.OpenReadStream();

        GraphServiceClient client = await MicrosoftGraphClient.GetGraphServiceClient();

        var uploadProps = new DriveItemUploadableProperties
        {
            ODataType = null,
            AdditionalData = new Dictionary<string, object>
            {
                { "@microsoft.graph.conflictBehavior", "rename" }
            }
        };

        var item = this.SelectUploadFolderID(upn).Result;
        var uploadSession = await client.Users[upn].Drive.Items[item].ItemWithPath(files.FileName).CreateUploadSession(uploadProps).Request().PostAsync();

        int maxChunkSize = 320 * 1024;
        var uploadTask = new LargeFileUploadTask<DriveItem>(uploadSession, fileStream, maxChunkSize);

        var response = await uploadTask.UploadAsync();

        if (response.UploadSucceeded)
        {
            jObject = JObject.FromObject(new { result = "success"});
            return jObject;
        }
        else
        {
            return null;
        }
    }
public异步任务上传大文件(字符串upn,格式文件)
{
var jObject=new jObject();
int fileSize=Convert.ToInt32(files.Length);
var fileStream=files.OpenReadStream();
GraphServiceClient=等待MicrosoftGraphClient.GetGraphServiceClient();
var uploadProps=新的DriveItemUploadableProperties
{
ODataType=null,
AdditionalData=新字典
{
{“@microsoft.graph.conflictBehavior”,“重命名”}
}
};
var item=this.SelectUploadFolderID(upn).Result;
var uploadSession=wait client.Users[upn].Drive.Items[item].ItemWithPath(files.FileName).CreateUploadSession(uploadProps.Request().PostAsync();
int maxChunkSize=320*1024;
var uploadTask=new LargeFileUploadTask(uploadSession、fileStream、maxChunkSize);
var response=await uploadTask.UploadAsync();
if(response.uploadsuccessed)
{
jObject=jObject.FromObject(新的{result=“success”});
返回作业对象;
}
其他的
{
返回null;
}
}

我遵循了在上提供的示例/指南,它对我有效。我知道上传更大的文件可能需要一段时间,这取决于互联网的速度,所以我将在这里排除Graph API。除此之外,我看不到任何加速的选择。你也可以考虑归档。

我遵循了提供的例子/指导,它对我起了作用。我知道上传更大的文件可能需要一段时间,这取决于互联网的速度,所以我将在这里排除Graph API。除此之外,我看不到任何加速的选项。如果您认为这需要微软考虑,那么请提交一份微软用户语音文件,以便他们可以查看它。下面是我可以想到的相关uservoice项目-。考虑投票或创建一个新文件…!!让我们知道它是如何进行的。将此移到答案上来-因为它可能对其他人有用。我在angular中正确地完成了它,而没有使用RESTAPI请求它。速度提高了很多。你发布的下面的链接很有帮助。很高兴听到,该链接帮助您前进:)