我有一个桌面应用程序需要将文件上传到网络服务器。
协议是 HTTPS。
我在想我应该写一个 ashx 来处理上传;一次发送 4k 块。每次都回复ok。这是一个好的算法吗?
通过 HTTPS 从桌面应用程序上传到网络服务器的最佳算法是什么?
您要上传多大的文件?只要它们不是很大(> 100 MB),您就可以从您的应用程序生成多部分 MIME 编码上传 ( RFC 1867 )。这与浏览器用于上传的格式相同,因此您的处理程序只需从 Request.Files 集合中提取文件。除非您在慢速连接上上传或上传大文件,否则分块不会给您带来太多好处。
如果您采用仅在收到前一个数据包的确认后才发送下一个数据包的简单方法,则分块可能会减慢您的速度。这种方法已被证明是缓慢的(在具有非平凡延迟的网络上)。尝试由网络服务器直接支持的东西,而不是自己滚动(例如 Chris Hynes 提出的建议:多部分 MIME 编码上传)。