@cryptotaxi247 / kubo / commits / 8cea9f91e

coreapi unixfs: docs on options

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com> This commit was moved from ipfs/interface-go-ipfs-core@eeb50d8e478fbaff90d4ef5a434834abfff408ad This commit was moved from ipfs/boxo@0039c7d460983de5c06f86459a0fb00b81ed0505

Łukasz Magiera committed Sep 20, 2018 at 23:44 UTC 8cea9f91e4aa09596b657d00b5d07e1d7b9c1151
1 file changed +28 -1
core/coreiface/options/unixfs.go
+28 -1
@@ -13,7 +13,7 @@ type Layout int
13
14 const (
15 BalancedLayout Layout = iota
16 - TrickleLeyout
16 + TrickleLayout
17 )
18
19 type UnixfsAddSettings struct {
@@ -95,6 +95,8 @@ type unixfsOpts struct{}
95
96 var Unixfs unixfsOpts
97
98 +// CidVersion specifies which CID version to use. Defaults to 0 unless an option
99 +// that depends on CIDv1 is passed.
100 func (unixfsOpts) CidVersion(version int) UnixfsAddOption {
101 return func(settings *UnixfsAddSettings) error {
102 settings.CidVersion = version
@@ -102,6 +104,9 @@ func (unixfsOpts) CidVersion(version int) UnixfsAddOption {
104 }
105 }
106
107 +// Hash function to use. Implies CIDv1 if not set to sha2-256 (default).
108 +//
109 +// Table of functions is declared in https://github.com/multiformats/go-multihash/blob/master/multihash.go
110 func (unixfsOpts) Hash(mhtype uint64) UnixfsAddOption {
111 return func(settings *UnixfsAddSettings) error {
112 settings.MhType = mhtype
@@ -109,6 +114,8 @@ func (unixfsOpts) Hash(mhtype uint64) UnixfsAddOption {
114 }
115 }
116
117 +// RawLeaves specifies whether to use raw blocks for leaves (data nodes with no
118 +// links) instead of wrapping them with unixfs structures.
119 func (unixfsOpts) RawLeaves(enable bool) UnixfsAddOption {
120 return func(settings *UnixfsAddSettings) error {
121 settings.RawLeaves = enable
@@ -117,6 +124,11 @@ func (unixfsOpts) RawLeaves(enable bool) UnixfsAddOption {
124 }
125 }
126
127 +// InlineLimit sets the amount of bytes below which blocks will be encoded
128 +// directly into CID instead of being stored and addressed by it's hash
129 +//
130 +// Note that while there is no hard limit on the number of bytes here, it should
131 +// be kept at something reasonably low like 32b (default for 'ipfs add')
132 func (unixfsOpts) InlineLimit(limit int) UnixfsAddOption {
133 return func(settings *UnixfsAddSettings) error {
134 settings.InlineLimit = limit
@@ -124,6 +136,11 @@ func (unixfsOpts) InlineLimit(limit int) UnixfsAddOption {
136 }
137 }
138
139 +// Chunker specifies settings for the chunking algorithm to use.
140 +//
141 +// Default: size-262144, formats:
142 +// size-[bytes] - Simple chunker splitting data into blocks of n bytes
143 +// rabin-[min]-[avg]-[max] - Rabin chunker
144 func (unixfsOpts) Chunker(chunker string) UnixfsAddOption {
145 return func(settings *UnixfsAddSettings) error {
146 settings.Chunker = chunker
@@ -131,6 +148,10 @@ func (unixfsOpts) Chunker(chunker string) UnixfsAddOption {
148 }
149 }
150
151 +// Layout tells the adder how to balance data between leaves.
152 +// options.BalancedLayout is the default, it's optimized for static seekable
153 +// files.
154 +// options.TrickleLayout is optimized for streaming data,
155 func (unixfsOpts) Layout(layout Layout) UnixfsAddOption {
156 return func(settings *UnixfsAddSettings) error {
157 settings.Layout = layout
@@ -138,6 +159,7 @@ func (unixfsOpts) Layout(layout Layout) UnixfsAddOption {
159 }
160 }
161
162 +// Pin tells the adder to pin the file root recursively after adding
163 func (unixfsOpts) Pin(pin bool) UnixfsAddOption {
164 return func(settings *UnixfsAddSettings) error {
165 settings.Pin = pin
@@ -145,6 +167,8 @@ func (unixfsOpts) Pin(pin bool) UnixfsAddOption {
167 }
168 }
169
170 +// HashOnly will make the adder calculate data hash without storing it in the
171 +// blockstore or announcing it to the network
172 func (unixfsOpts) HashOnly(hashOnly bool) UnixfsAddOption {
173 return func(settings *UnixfsAddSettings) error {
174 settings.OnlyHash = hashOnly
@@ -152,6 +176,9 @@ func (unixfsOpts) HashOnly(hashOnly bool) UnixfsAddOption {
176 }
177 }
178
179 +// Local will add the data to blockstore without announcing it to the network
180 +//
181 +// Note that this doesn't prevent other nodes from getting this data
182 func (unixfsOpts) Local(local bool) UnixfsAddOption {
183 return func(settings *UnixfsAddSettings) error {
184 settings.Local = local