Closed hoh closed 5 months ago
What I told @1yam was to implement a generic function that takes a buffer, as you suggest. He already implemented it (see download_file_to_buffer()
.
On the other hand, I don't see the point of returning a temporary file if no buffer is specified. I think we should provide a download_to_file(file_hash, path)
convenience function that uses download_file_to_buffer()
. I say we leave the choice of where the file is located entirely to the user.
Downloading files currently stores everything in RAM, doing so in a new
BytesIO
object.We should change the definition of the function or create a new one that saves the data on disk.
My proposal is to ask the user to pass a file-like object the function can write to.
This file-like object can be a buffer in memory, a file on disk or anything compatible with the interface.
For convenience, we could make that argument optional and return a NamedTemporaryFile if it is None.
_Originally posted by @hoh in https://github.com/aleph-im/aleph-sdk-python/pull/36#discussion_r1258473666_