Is it possible to 'ipfs get' without save things twice?

I try to replicate my data in a number of computers behind different internet connections, so, access from other people will be faster.

To replicate my data I just run:
ipfs get /ipns/k51aaaa…

But this reserves storage in folder
as individual scattered blocks
and in folder ~/k51aaaa…
as file hierarchy.

Because in secondary computers I don’t care about availability of data in meaningful state, is there a way to avoid the creation of folder ~/k51aaaa…?
Even obscure method will be fine (even -if possible- to download somehow block-by-block)

Or, else, is possible to avoid ~/.ipfs/blocks and with some hack on filestore use directly ~/k51aaaa…?


Currently no but I’m working on reflinking flat FS (using the copy range reflink of the latest linux FS (like btrfs) to store multiple files with the same data blocks).

1 Like

BTW if you are willing to implement that yourself you could hook in the block exchange layer.

You can just download just the blocks without creating an output folder with ipfs refs -r /ipns/k51aaaa....

1 Like

if streaming them is a valid option I guess ipfs cat does the same in a simpler way.

ipfs cat would do the same for a single file. refs -r allows to download a full folder structure.

Iirc ipfs pin add could be faster due to paralel dag traversing (but in this case it would need to be followed by pin rm).