C# 将内容复制到流时出现HttpRequestException错误(Cloudinary上载)

C# 将内容复制到流时出现HttpRequestException错误(Cloudinary上载),c#,asp.net-core,cloudinary,C#,Asp.net Core,Cloudinary,我正在尝试建立一个用户可以上传小视频的项目。我创建了下面的类来处理关于如何上传视频的Cloudinary代码。 它适用于非常短的视频,如0.3秒的视频,但当我尝试上传超过0.10秒的视频时,我会遇到一个例外: System.Net.Http.HttpRequestException:将内容复制到流时出错 这些视频正在上传到Cloudinary。代码如下: public class VideoAccessor : IVideoAccessor { private read

我正在尝试建立一个用户可以上传小视频的项目。我创建了下面的类来处理关于如何上传视频的Cloudinary代码。 它适用于非常短的视频,如0.3秒的视频,但当我尝试上传超过0.10秒的视频时,我会遇到一个例外:

System.Net.Http.HttpRequestException:将内容复制到流时出错

这些视频正在上传到Cloudinary。代码如下:

 public class VideoAccessor : IVideoAccessor
    {
        private readonly Cloudinary _cloudinary;
        public VideoAccessor(IConfiguration config)
        {
            // instantiate a new instance of cloudinary using details provided
            _cloudinary = new Cloudinary(config["cloudinary"]);
        }
        
        public VideoUploadResult UploadClip(IFormFile videoFile)
        {
            var uploadResult = new CloudinaryDotNet.Actions.VideoUploadResult();
            if (videoFile.Length > 0)
            {
                // create a new file stream to upload the video to cloudinary
                using (var filestream = videoFile.OpenReadStream())
                {
                    var uploadParams = new VideoUploadParams
                    {
                        File = new FileDescription(videoFile.FileName, filestream),
                        Transformation = new Transformation().StartOffset("0").EndOffset("120").Crop("fill")

                    };
                    uploadResult = _cloudinary.Upload(uploadParams);
                }
            }
            
            // checks if error occurs when uploading video
            if (uploadResult.Error != null)
            {
                throw new Exception(uploadResult.Error.Message);
            }

            return new VideoUploadResult
            {
                PublicId = uploadResult.PublicId,
                Url = uploadResult.SecureUrl.AbsoluteUri
            };
        }
}
}
尝试上载时,我遇到异常。有人知道我可以添加什么,或者如何使它更适合较大的文件吗

堆栈跟踪:

System.Threading.Tasks.TaskCanceledException:操作已取消。

System.Net.Http.HttpRequestException:将内容复制到流时出错。

System.IO.IOException:无法从传输连接读取数据:由于线程退出或应用程序请求,I/O操作已中止

System.Net.Sockets.SocketException(995):由于线程退出或应用程序请求,I/O操作已中止


你的上传请求可能超时了。您可能需要使用UploadLarge方法将视频分块上传。看-https://github.com/cloudinary/CloudinaryDotNet/blob/a3a4d38c4fd7c1b03beeb3eed7d8ea725866a36c/Shared/Cloudinary.cs#L1229


有关详细信息:

您的上载请求可能超时。您可能需要使用UploadLarge方法将视频分块上传。看-https://github.com/cloudinary/CloudinaryDotNet/blob/a3a4d38c4fd7c1b03beeb3eed7d8ea725866a36c/Shared/Cloudinary.cs#L1229


更多信息:

是否存在内部异常,说明实际错误是什么?我上载了堆栈跟踪。对于非常短的视频(如0.3秒的视频),它可以正常工作,但当我尝试上载超过0.10秒的视频时-你是说“10秒”?我看到堆栈顶部有一个
TaskCanceledException
。库是否支持
async
调用?不,我的意思是0.10秒。是的,库确实支持一个内部异常,说明实际错误是什么?我上传了堆栈跟踪它对于非常短的视频(如0.3秒的视频)效果很好,但是当我尝试上传超过0.10秒的视频时-你是说“10秒”吗?我看到堆栈顶部有一个
TaskCanceledException
。库是否支持
async
调用?不,我的意思是0.10秒。是的,图书馆确实支持它