鉴于两个外部API,其中一个提供下载API,另一个提供上传API,两者都只允许使用Stream
进行数据交换,我需要一种方法将数据直接从下载直接传输到上传
假设API简单如下:
Download (string url, Stream stream)
Upload (string url, Stream source)
我在.NET框架中找不到提供此功能的Stream
实现。
这不是Stream.CopyTo
的情况,因为两个API都实现了自己的读写IO循环。如果任一API返回了自定义Stream
实现,那么Stream.CopyTo
将是答案,但由于它们都接受输入Stream
进行读取或写入,因此必须实现自定义{ {1}}充当接收器(用于下载器)和源(用于上载器),并对两者中较慢的一个施加压力,以防止内存缓冲区失控。