Skip to content

Commit 00862e4

Browse files
committed
feat(examples): add unixfs file download example
1 parent d195f6d commit 00862e4

File tree

6 files changed

+475
-5
lines changed

6 files changed

+475
-5
lines changed

examples/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ Let us know if you find any issue or if you want to contribute and add a new tut
66

77
## Examples and Tutorials
88

9+
- [Fetching a UnixFS file by CID](./unixfs-file-cid)
910
- [Gateway backed by a CAR file](./gateway/car)
1011
- [Gateway backed by a remote blockstore and IPNS resolver](./gateway/proxy)

examples/go.mod

+49-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ require (
66
github.com/gogo/protobuf v1.3.2
77
github.com/ipfs/go-blockservice v0.5.0
88
github.com/ipfs/go-cid v0.3.2
9+
github.com/ipfs/go-datastore v0.6.0
910
github.com/ipfs/go-fetcher v1.6.1
1011
github.com/ipfs/go-ipfs-blockstore v1.2.0
12+
github.com/ipfs/go-ipfs-chunker v0.0.1
1113
github.com/ipfs/go-ipfs-exchange-offline v0.3.0
1214
github.com/ipfs/go-ipld-format v0.4.0
1315
github.com/ipfs/go-ipns v0.3.0
@@ -22,86 +24,129 @@ require (
2224
github.com/ipld/go-codec-dagpb v1.5.0
2325
github.com/ipld/go-ipld-prime v0.19.0
2426
github.com/libp2p/go-libp2p v0.25.1
27+
github.com/libp2p/go-libp2p-routing-helpers v0.4.0
28+
github.com/multiformats/go-multiaddr v0.8.0
2529
github.com/multiformats/go-multicodec v0.7.0
2630
github.com/prometheus/client_golang v1.14.0
2731
github.com/stretchr/testify v1.8.1
2832
)
2933

3034
require (
3135
github.com/alecthomas/units v0.0.0-20210927113745-59d0afb8317a // indirect
36+
github.com/benbjohnson/clock v1.3.0 // indirect
3237
github.com/beorn7/perks v1.0.1 // indirect
3338
github.com/cespare/xxhash v1.1.0 // indirect
3439
github.com/cespare/xxhash/v2 v2.2.0 // indirect
40+
github.com/containerd/cgroups v1.0.4 // indirect
41+
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
3542
github.com/crackcomm/go-gitignore v0.0.0-20170627025303-887ab5e44cc3 // indirect
43+
github.com/cskr/pubsub v1.0.2 // indirect
3644
github.com/davecgh/go-spew v1.1.1 // indirect
45+
github.com/davidlazar/go-crypto v0.0.0-20200604182044-b73af7476f6c // indirect
3746
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect
47+
github.com/docker/go-units v0.5.0 // indirect
3848
github.com/dustin/go-humanize v1.0.0 // indirect
49+
github.com/elastic/gosigar v0.14.2 // indirect
50+
github.com/flynn/noise v1.0.0 // indirect
51+
github.com/francoispqt/gojay v1.2.13 // indirect
3952
github.com/gabriel-vasile/mimetype v1.4.1 // indirect
4053
github.com/go-logr/logr v1.2.3 // indirect
4154
github.com/go-logr/stdr v1.2.2 // indirect
55+
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
56+
github.com/godbus/dbus/v5 v5.1.0 // indirect
57+
github.com/golang/mock v1.6.0 // indirect
4258
github.com/golang/protobuf v1.5.2 // indirect
4359
github.com/google/gopacket v1.1.19 // indirect
60+
github.com/google/pprof v0.0.0-20221203041831-ce31453925ec // indirect
4461
github.com/google/uuid v1.3.0 // indirect
4562
github.com/hashicorp/errwrap v1.1.0 // indirect
4663
github.com/hashicorp/go-multierror v1.1.1 // indirect
4764
github.com/hashicorp/golang-lru v0.5.4 // indirect
65+
github.com/huin/goupnp v1.0.3 // indirect
4866
github.com/ipfs/bbloom v0.0.4 // indirect
4967
github.com/ipfs/go-bitfield v1.0.0 // indirect
5068
github.com/ipfs/go-block-format v0.1.1 // indirect
51-
github.com/ipfs/go-datastore v0.6.0 // indirect
69+
github.com/ipfs/go-ipfs-delay v0.0.1 // indirect
5270
github.com/ipfs/go-ipfs-ds-help v1.1.0 // indirect
5371
github.com/ipfs/go-ipfs-exchange-interface v0.2.0 // indirect
5472
github.com/ipfs/go-ipfs-files v0.3.0 // indirect
73+
github.com/ipfs/go-ipfs-posinfo v0.0.1 // indirect
74+
github.com/ipfs/go-ipfs-pq v0.0.2 // indirect
5575
github.com/ipfs/go-ipfs-redirects-file v0.1.1 // indirect
5676
github.com/ipfs/go-ipfs-util v0.0.2 // indirect
5777
github.com/ipfs/go-ipld-cbor v0.0.6 // indirect
5878
github.com/ipfs/go-ipld-legacy v0.1.1 // indirect
5979
github.com/ipfs/go-log v1.0.5 // indirect
6080
github.com/ipfs/go-log/v2 v2.5.1 // indirect
6181
github.com/ipfs/go-metrics-interface v0.0.1 // indirect
82+
github.com/ipfs/go-peertaskqueue v0.8.0 // indirect
6283
github.com/ipfs/go-verifcid v0.0.2 // indirect
6384
github.com/ipld/go-car v0.5.0 // indirect
85+
github.com/jackpal/go-nat-pmp v1.0.2 // indirect
86+
github.com/jbenet/go-temp-err-catcher v0.1.0 // indirect
6487
github.com/jbenet/goprocess v0.1.4 // indirect
88+
github.com/klauspost/compress v1.15.12 // indirect
6589
github.com/klauspost/cpuid/v2 v2.2.3 // indirect
90+
github.com/koron/go-ssdp v0.0.3 // indirect
6691
github.com/libp2p/go-buffer-pool v0.1.0 // indirect
6792
github.com/libp2p/go-cidranger v1.1.0 // indirect
93+
github.com/libp2p/go-flow-metrics v0.1.0 // indirect
6894
github.com/libp2p/go-libp2p-asn-util v0.2.0 // indirect
6995
github.com/libp2p/go-libp2p-kad-dht v0.21.0 // indirect
7096
github.com/libp2p/go-libp2p-kbucket v0.5.0 // indirect
7197
github.com/libp2p/go-libp2p-record v0.2.0 // indirect
7298
github.com/libp2p/go-msgio v0.3.0 // indirect
99+
github.com/libp2p/go-nat v0.1.0 // indirect
73100
github.com/libp2p/go-netroute v0.2.1 // indirect
101+
github.com/libp2p/go-reuseport v0.2.0 // indirect
102+
github.com/libp2p/go-yamux/v4 v4.0.0 // indirect
103+
github.com/marten-seemann/tcp v0.0.0-20210406111302-dfbc87cc63fd // indirect
74104
github.com/mattn/go-isatty v0.0.17 // indirect
75105
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
76106
github.com/miekg/dns v1.1.50 // indirect
107+
github.com/mikioh/tcpinfo v0.0.0-20190314235526-30a79bb1804b // indirect
108+
github.com/mikioh/tcpopt v0.0.0-20190314235656-172688c1accc // indirect
77109
github.com/minio/sha256-simd v1.0.0 // indirect
78110
github.com/mr-tron/base58 v1.2.0 // indirect
79111
github.com/multiformats/go-base32 v0.1.0 // indirect
80112
github.com/multiformats/go-base36 v0.2.0 // indirect
81-
github.com/multiformats/go-multiaddr v0.8.0 // indirect
82113
github.com/multiformats/go-multiaddr-dns v0.3.1 // indirect
114+
github.com/multiformats/go-multiaddr-fmt v0.1.0 // indirect
83115
github.com/multiformats/go-multibase v0.1.1 // indirect
84116
github.com/multiformats/go-multihash v0.2.1 // indirect
85117
github.com/multiformats/go-multistream v0.4.1 // indirect
86118
github.com/multiformats/go-varint v0.0.7 // indirect
119+
github.com/onsi/ginkgo/v2 v2.5.1 // indirect
120+
github.com/opencontainers/runtime-spec v1.0.2 // indirect
87121
github.com/opentracing/opentracing-go v1.2.0 // indirect
122+
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
88123
github.com/petar/GoLLRB v0.0.0-20210522233825-ae3b015fd3e9 // indirect
89124
github.com/pkg/errors v0.9.1 // indirect
90125
github.com/pmezard/go-difflib v1.0.0 // indirect
91126
github.com/polydawn/refmt v0.89.0 // indirect
92127
github.com/prometheus/client_model v0.3.0 // indirect
93128
github.com/prometheus/common v0.37.0 // indirect
94129
github.com/prometheus/procfs v0.8.0 // indirect
130+
github.com/quic-go/qpack v0.4.0 // indirect
131+
github.com/quic-go/qtls-go1-18 v0.2.0 // indirect
132+
github.com/quic-go/qtls-go1-19 v0.2.0 // indirect
133+
github.com/quic-go/qtls-go1-20 v0.1.0 // indirect
134+
github.com/quic-go/quic-go v0.32.0 // indirect
135+
github.com/quic-go/webtransport-go v0.5.1 // indirect
136+
github.com/raulk/go-watchdog v1.3.0 // indirect
95137
github.com/spaolacci/murmur3 v1.1.0 // indirect
96138
github.com/ucarion/urlpath v0.0.0-20200424170820-7ccc79b76bbb // indirect
97139
github.com/whyrusleeping/base32 v0.0.0-20170828182744-c30ac30633cc // indirect
98140
github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect
99141
github.com/whyrusleeping/cbor-gen v0.0.0-20230126041949-52956bd4c9aa // indirect
142+
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect
100143
github.com/whyrusleeping/go-keyspace v0.0.0-20160322163242-5b898ac5add1 // indirect
101144
go.opencensus.io v0.24.0 // indirect
102145
go.opentelemetry.io/otel v1.12.0 // indirect
103146
go.opentelemetry.io/otel/trace v1.12.0 // indirect
104147
go.uber.org/atomic v1.10.0 // indirect
148+
go.uber.org/dig v1.15.0 // indirect
149+
go.uber.org/fx v1.18.2 // indirect
105150
go.uber.org/multierr v1.9.0 // indirect
106151
go.uber.org/zap v1.24.0 // indirect
107152
golang.org/x/crypto v0.5.0 // indirect
@@ -110,11 +155,13 @@ require (
110155
golang.org/x/net v0.5.0 // indirect
111156
golang.org/x/sync v0.1.0 // indirect
112157
golang.org/x/sys v0.4.0 // indirect
158+
golang.org/x/text v0.6.0 // indirect
113159
golang.org/x/tools v0.3.0 // indirect
114160
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
115161
google.golang.org/protobuf v1.28.1 // indirect
116162
gopkg.in/yaml.v3 v3.0.1 // indirect
117163
lukechampine.com/blake3 v1.1.7 // indirect
164+
nhooyr.io/websocket v1.8.7 // indirect
118165
)
119166

120167
replace github.com/ipfs/go-libipfs => ../

0 commit comments

Comments
 (0)