So fetch gives you a web ReadableStream, but your storage SDK wants a Node stream. What's actually different between the two models, and how do you bridge them without breaking anything?
A strong answer knows how flow control works in both stream models, plus the toWeb/fromWeb bridges and their error and cancellation caveats
Node ships two stream families, so there's the classic Node streams, Readable, Writable, events, pipe, and then the WHATWG web streams, ReadableStream, WritableStream, TransformStream, which came over from the browser standard. A fetch body is a web stream. The main difference is style, I think. Node streams are event-based and push-oriented, web streams are promise-based and pull-oriented, with readers and controllers instead of events. For interop Node gives you official converters, Readable.toWeb() and Readable.fromWeb(), and the same methods exist on Writable and Duplex. So for the fetch-to-SDK case you'd write Readable.fromWeb(response.body) and then pipe or pipeline into the SDK's stream like normal. Backpressure works across the conversion, from what I understand. Web streams are the more portable choice since they run in browsers, edge runtimes, and Node alike, and Node streams stay the native fit for Node's own APIs like fs and http.