ios - Flutter/Dart SocketException 将视频文件上传到 URL
问题描述
我在尝试将视频文件上传到指定 URL 时收到此错误消息:
DioError (DioError [DioErrorType.DEFAULT]: SocketException: OS Error: Connection reset by peer, errno = 54, address = storage.googleapis.com, port = 64995)
注意:这是DioError
因为我正在使用dio
Dart/Flutter 包:https : //pub.dev/packages/dio 我使用http
库等等效 API 收到错误。
上传从存储中选择的视频文件的代码:
//File videoFile...
FormData data = FormData.fromMap({
"videoFile": await MultipartFile.fromFile(videoFile.path),
});
Response response = await Dio().post(
directUpload.url,
data: data,
onSendProgress: (int sent, int total) {
print("$sent $total");
},
);
URL ( directUpload.url
) 是由 Mux API 生成并提供给他们的 Google Cloud Storage 的。
https://storage.googleapis.com/video-storage-us-east1-uploads/...
调用时post
,上传少量(如655524 / 17840042),然后出现错误。测试视频大小为 17.8 Mb。
在 iOS 设备或 iOS 模拟器上运行它会产生相同的结果/错误。
我尝试过:flutter clean
、、flutter upgrade
删除Podfile
和pod repo update
从设备中删除应用程序。一切都无济于事。
解决方案
从 POST 更改为 PUT 请求可解决此问题。
推荐阅读
- kubernetes - 使用 Ingress Nginx 控制器公开 Redis
- angular - 如何将动态模板加载到角度组件中
- python - 具有多个列范围的 Pandas 数据框切片
- java - 为什么我的 1 片段没有收到片段 2 的值?我使用捆绑()
- rest - 在 OpenAPI 中,如何使某些属性只在 PATCH 中需要?
- c# - .NET :- 使用 linq 将对象与 Hashset 中的对象匹配
- c - 使用 NEON 指令加速级联双二阶 - 它是如何工作的?
- python-3.x - 从两个日期时间值 - 将给定的日期时间值分配给最近/最左边的日期时间值
- performance-testing - 如果我想在远程 Windows 服务器上启动 K6 测试运行,是否有 API 可用于启动 K6 测试运行或任何替代方法,例如 curl?
- python - reduce 方法不适用于另一个字典的值