The main obstacle here is that rust-libp2p doesn't support bitswap protocol, so probably some IPFS sidecar will have to be used. Some internal drafts: https://wiki.subsquid.io/doc/decentralized-storage-9dUGpw0u1R