Автоматическое добавление файлов в сеть IPFS - PullRequest
0 голосов
/ 02 ноября 2018

На моем Raspberry Pi у меня запущен скрипт Python, который проверяет, измеряется ли комнатная температура (через DHT22), а затем записывает температуру в файл CVS каждые полчаса.

Новый файл CVS создается для каждодневной работы сценария. Следовательно, имена файлов temp_dd-mm-yy.cvs. Все эти файлы сохранены в моей папке loggings.

Теперь я хочу автоматически добавить файлы cvs в сеть IPFS, потому что я не хочу писать ipfs add <file.cvs> в терминале каждый день.

Другими словами, есть ли способ запустить фрагмент кода, который гарантирует, что все файлы в папке logging добавляются в сеть IPFS каждые 24 часа?

Я экспериментировал с IPFS API, но мне не удалось извлечь из этого ничего полезного.

1 Ответ

0 голосов
/ 05 ноября 2018

Из python напрямую есть два способа сделать это. Либо вы вызываете двоичный файл ipfs с помощью команды вызова subprocess , либо вы напрямую используете API REST, используя что-то вроде urllib .

Для использования REST API необходимо добавить данные в виде запроса POST, а данные передаются в виде данных формы.

Вот эквивалентный запрос curl для добавления двух «файлов»:

$ curl -X POST -F 'file1=somedata' -F 'file2=somemoredata' http://localhost:5001/api/v0/add
{"Name":"QmaJLd3cTDQFULC4j61nye2EryYTbFAUPKVAzrkkq9wQ98",
  "Hash":"QmaJLd3cTDQFULC4j61nye2EryYTbFAUPKVAzrkkq9wQ98","Size":"16"}
{"Name":"Qman7GbdDxgT3SzkzeMinvUkaiVduzKHJGE5P2WGPqV2uq",
  "Hash":"Qman7GbdDxgT3SzkzeMinvUkaiVduzKHJGE5P2WGPqV2uq","Size":"20"}

С помощью shell вы можете просто выполнить работу cron, например,

ipfs add -R /logging

каждый день. Это будет достаточно эффективно, пока ваш каталог журналов не станет действительно большим, даже если он будет добавлять файлы снова и снова.

Конечно, вам нужно где-то поместить хэши или использовать IPNS, чтобы люди действительно могли видеть эти данные.

...