LINUX.ORG.RU

ipfs читабельные линки

 


0

1

прочитал тут сегодня про ipfs, довольно интересная тема я считаю. Но при добавлении файлов получаешь только хеши и непонятно что там за файл и хотя бы тип файла. Если ли возможность сделать их более читабельными?


ipfs files это называется, оно же MFS. https://docs-beta.ipfs.io/concepts/file-systems/#mutable-file-system-mfs

$ echo 'Hello, LOR' > hello.txt
$ ipfs add hello.txt
added Qmc5rwLoUcnoSZWyDsjeVhEAL77eTzj5W4FNxo77hyez9C hello.txt
$ ipfs files mkdir /hello-lor
$ ipfs files cp /ipfs/Qmc5rwLoUcnoSZWyDsjeVhEAL77eTzj5W4FNxo77hyez9C /hello-lor/hello.txt
$ ipfs files ls /hello-lor/
hello.txt

$ ipfs files read /hello-lor/hello.txt
Hello, LOR

Ну или можно при добавлении вот так делать:

$ ipfs add -w hello.txt # -w for Wrap with a directory
added Qmc5rwLoUcnoSZWyDsjeVhEAL77eTzj5W4FNxo77hyez9C hello.txt
added QmZpvh5btZsi66xhnVqmquCXBpTJFy4YLva9wtmjyXRrCB

$ ipfs ls QmZpvh5btZsi66xhnVqmquCXBpTJFy4YLva9wtmjyXRrCB
Qmc5rwLoUcnoSZWyDsjeVhEAL77eTzj5W4FNxo77hyez9C 11 hello.txt
$ ipfs cat QmZpvh5btZsi66xhnVqmquCXBpTJFy4YLva9wtmjyXRrCB/hello.txt
Hello, LOR

Хэши у каталогов в обоих получаются одинаковые, кстати:

$ ipfs files stat /hello-lor/
QmZpvh5btZsi66xhnVqmquCXBpTJFy4YLva9wtmjyXRrCB #Тот же самый хэш, что и после ipfs add -w
Size: 0
CumulativeSize: 74
ChildBlocks: 1
Type: directory

Но нсли переименовать файл, который внутри ipfs files — хэш каталога естественно поменяется.

$ ipfs files mv /hello-lor/hello.txt /hello-lor/hello-renamed.txt
$ ipfs files ls /hello-lor/
hello-renamed.txt
$ ipfs files stat /hello-lor/
QmT7C4nvPBcJfzNii9yfBXxPcLqa96VdrQgvbohgnFh6sG
Size: 0
CumulativeSize: 82
ChildBlocks: 1
Type: directory

Ну или как-то так.

toyo-chi ()
Ответ на: комментарий от toyo-chi

спасибо за ответ. Я имел виду расшаренные линки которые можно использовать для доступа к файлам по ipfs. Вот например у меня добавлены в админке браузера 4 файла, совершенно непонятно какие именно. Например в терминале я могу проиграть файло

http: //192.168.1.3:8080/ipfs/QmTgrPQaFpCdqqyzpmRMXkqddGufpsnctSrp81aCF8uPbA

а хотелось бы чтобы выглядело так

http: //192.168.1.3:8080/ipfs/4.mkv

https://i.imgur.com/EtDRDCt.jpg

jtad ()
Последнее исправление: jtad (всего исправлений: 2)
Ответ на: комментарий от jtad

А, нет, вот прямо чтобы совсем так, без видимых хэшей — не взлетит без каких-нибудь гипотетических внешних обёрток, в которых будут храниться соответствия хэшей и читаемых адресов. Контентная адресация же! Ну или без доступа к локальной MFS через HTTP API (или через её монтирование куда-нибудь), но ни то, ни другое вроде бы ещё не поддерживается (а не помешало бы). Но естественно, в целом это будет иметь смысл только локально. Ну а сейчас остаётся только обернуть файл в каталог:

$ ipfs files mkdir /videos
$ ipfs files cp /ipfs/QmTgrPQaFpCdqqyzpmRMXkqddGufpsnctSrp81aCF8uPbA /videos/4.mkv #Нужно, чтобы файл с этим хэшем находился в локальном хранилище
$ ipfs files stat /videos
QmUNLLsPACCz1vLxQVkXqqLX5R1X345qqfHbsf67hvA3Nn #Тут будет настоящий хэш, а это просто пустой каталог

$ mpv http://192.168.1.3:8080/ipfs/[настоящий хэш из предыдущего действия]/4.mkv

Хэш всё ещё виден, но и название при этом тоже сохраняется. И делиться такой ссылкой тоже можно (отбросив адрес своей ноды, конечно).

В веб-интерфейсе ноды всё добавленное через ipfs files тоже будет видно, там раздел так и называется — Files.

toyo-chi ()