【发布时间】:2021-01-24 09:45:30
【问题描述】:
我正在尝试构建一个用户可以上传小视频的项目。我创建了下面的类来处理关于如何上传视频的 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 操作已中止。
【问题讨论】:
-
是否有内部异常说明实际错误是什么?
-
我上传了堆栈跟踪
-
它适用于非常短的视频,例如 0.3 秒的视频,但是当我尝试上传超过 0.10 秒的视频时 - 你的意思是“10 秒”吗?跨度>
-
我看到堆栈顶部有一个
TaskCanceledException。该库是否支持async调用? -
不,我的意思是字面意思是 0.10 秒。是的,图书馆确实支持它
标签: c# asp.net-core cloudinary