自动将文件添加到IPFS网络

时间:2018-11-02 13:46:15

标签: javascript python ipfs

在Raspberry Pi上,我运行了一个Python脚本,以确保正在测量室温(通过DHT22),然后每半小时将温度记录到CVS文件中。

每天在脚本运行时都会创建一个新的CVS文件。因此,文件的名称为temp_dd-mm-yy.cvs。这些文件都保存在我的loggings文件夹中。

我现在想自动将cvs文件固定到IPFS网络,因为我不想每天在终端中写入ipfs add <file.cvs>

换句话说,是否有一种方法可以运行一段代码,以确保logging文件夹中的所有文件每24小时都添加到IPFS网络中?

我已经尝试过IPFS API,但是我没有从中获得任何有用的信息。

2 个答案:

答案 0 :(得分:0)

直接通过python,有两种方法可以做到这一点。您可以使用subprocess调用命令来调用ipfs二进制文件,也可以使用urllib之类的东西直接使用REST api。

要使用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,以便人们可以实际看到此数据。

答案 1 :(得分:0)

一个简单的解决方案是使用 ipfs-sync 在 IPFS 上保持目录同步。它会为您保留一个目录,如果您需要一致的数据地址,还会为您更新 IPNS 密钥。

如果您愿意,也可以将其调整为仅每 24 小时更新一次 IPNS。

免责声明:我是 ipfs-sync 的创建者和维护者。