mirror of
https://github.com/fluencelabs/dweb-transports
synced 2025-03-14 18:10:49 +00:00
Document seed and fetch
This commit is contained in:
parent
bd73dbd2ac
commit
99263ec966
15
API.md
15
API.md
@ -147,6 +147,16 @@ sig Signature data structure (see below - contains url, date, signedby, s
|
||||
signature - verifiable signature of date+urls
|
||||
signedby - url of data structure (typically CommonList) holding public key used for the signature
|
||||
```
|
||||
##### seed({directoryPath=undefined, fileRelativePath=undefined, ipfsHash=undefined, urlToFile=undefined}, cb)
|
||||
Seed the file to any transports that can handle it.
|
||||
```
|
||||
ipfsHash: When passed as a parameter, its checked against whatever IPFS calculates.
|
||||
Its reported, but not an error if it doesn't match. (the cases are complex, for example the file might have been updated).
|
||||
urlFile: The URL where that file is available, this is to enable transports (e.g. IPFS) that just map an internal id to a URL.
|
||||
directoryPath: Absolute path to the directory, for transports that think in terms of directories (e.g. WebTorrent)
|
||||
this is the unit corresponding to a torrent, and should be where the torrent file will be found or should be built
|
||||
fileRelativePath: Path (relative to directoryPath) to the file to be seeded.
|
||||
```
|
||||
|
||||
##### p_rawlist(url)
|
||||
Fetch all the objects in a list, these are identified by the url of the public key used for signing.
|
||||
@ -431,6 +441,8 @@ static async p_connection(urls)||Tries all parallel
|
||||
static monitor(urls, cb, { current})||Tries all sequentially
|
||||
|
||||
##### static async p_rawfetch(urls, {timeoutMS, start, end, relay})
|
||||
FOR NEW CODE USE `fetch` instead of p_rawfetch
|
||||
|
||||
Tries to fetch on all valid transports until successful. See Transport.p_rawfetch
|
||||
```
|
||||
timeoutMS: Max time to wait on transports that support it (IPFS for fetch)
|
||||
@ -438,6 +450,9 @@ start,end Inclusive byte range wanted - passed to
|
||||
relay If first transport fails, try and retrieve on 2nd, then store on 1st, and so on.
|
||||
```
|
||||
|
||||
##### fetch(url, {timeoutMS, start, end, relay}, cb)
|
||||
As for p_rawfetch but returns either via callback or Promise
|
||||
|
||||
## httptools
|
||||
A utility class to support HTTP with or without TransportHTTP
|
||||
e.g. `httptools.http().p_httpfetch("http://foo.com/bar", {method: 'GET'} )`
|
||||
|
@ -214,6 +214,15 @@ class Transports {
|
||||
// Seeding =====
|
||||
// Similar to storing.
|
||||
static seed({directoryPath=undefined, fileRelativePath=undefined, ipfsHash=undefined, urlToFile=undefined}, cb) {
|
||||
/*
|
||||
TODO-API get thsi from the issue
|
||||
ipfsHash: When passed as a parameter, its checked against whatever IPFS calculates.
|
||||
Its reported, but not an error if it doesn't match. (the cases are complex, for example the file might have been updated).
|
||||
urlFile: The URL where that file is available, this is to enable transports (e.g. IPFS) that just map an internal id to a URL.
|
||||
directoryPath: Absolute path to the directory, for transports that think in terms of directories (e.g. WebTorrent)
|
||||
this is the unit corresponding to a torrent, and should be where the torrent file will be found or should be built
|
||||
fileRelativePath: Path (relative to directoryPath) to the file to be seeded.
|
||||
*/
|
||||
if (cb) { try { f.call(this, cb) } catch(err) { cb(err)}} else { return new Promise((resolve, reject) => { try { f.call(this, (err, res) => { if (err) {reject(err)} else {resolve(res)} })} catch(err) {reject(err)}})} // Promisify pattern v2
|
||||
function f(cb1) {
|
||||
let tt = this.validFor(undefined, "seed").map(([u, t]) => t); // Valid connected transports that support "seed"
|
||||
@ -700,8 +709,8 @@ class Transports {
|
||||
statuselement.appendChild(
|
||||
utils.createElement("UL", {}, transports.map(t => {
|
||||
let el = utils.createElement("LI",
|
||||
{onclick: "this.source.togglePaused(DwebTransports.refreshstatus);", source: t, name: t.name}, //TODO-SW figure out how t osend this back
|
||||
t.name);
|
||||
{onclick: "this.source.togglePaused(DwebTransports.refreshstatus);", source: t, name: t.name}, //TODO-SW figure out how t osend this back
|
||||
t.name);
|
||||
t.statuselement = el; // Save status element on transport
|
||||
return el;
|
||||
}))
|
||||
|
Loading…
x
Reference in New Issue
Block a user