A simple wrapper for interacting with IPFS API
[clj-ipfs-api "1.2.3"]
;; In your ns statement:
(ns my.ns
(:require [clj-ipfs-api.core :as ipfs]))
Launch the IPFS Daemon.
;; for default daemon settings use just like cli
;; commands are joined with dashes
(ipfs/swarm-peers)
;; arguments are strings
(ipfs/cat
"QmShWPeTZL5px2YGvgJD99C4SuHEqry1u1RoNu1bAVDkM1"
"QmbRdyLXiFWrKc5hW1NbvpUxF9tLovWCPgiz4BDhjD9k3j")
;; flags go in a map
(ipfs/swarm-peers {:type "indirect"})
Custom API server address has to be set up.
(ipfs/set-api-url! "http://127.0.0.1:55555")
Everything is decoded from json, except cat
.
To change request options use a map under :request
key.
;; different API server
(ipfs/swarm-peers {:request {:url "http://127.0.0.1:55555"}})
;; for big files use a stream, no json parsing is done in this case
(ipfs/swarm-peers {:request {:as :stream}})
For more options that are taken by the :request
map,
look at the second argument of request function in clj-http.