Enables generation of eD2k URI and hash on the browser.
npm install ed2k.js
Here's an example for hashing a single file.
const ED2K = require('ed2k.js')
const hasher = new ED2K()
const fileReader = new FileReader()
// html file object (e.g. from file input)
const file = document.querySelector('input[type=file]').files[0]
// filename will be blank in the URI generated unless we set this
hasher.ed2k.name = file.name
let ed2kURI
fileReader.onload = function (e) {
// you might want to break large file into chunks and do
// multiple updates to keep browser memory usage in check
hasher.update(new Buffer(e.target.result))
ed2kURI = hasher.digest()
}
fileReader.readAsArrayBuffer(file)
when hashing is done:
$ ed2kURI
> Object {
name: "example.txt",
size: 1,
hash: "ea5698173fc6fdbe30a9af462b9fc847"
}
$ ed2kURI + ''
> "ed2k://|file|example.txt|1|ea5698173fc6fdbe30a9af462b9fc847"
This project's implementation detail is based on ed2k-link and rewritten to support execution in the browser environment. If you don't need it to run on the browser, go check that project out as it may have better performance on node.
This implementation will add an additional 0-byte chunk at the end of the hash set for file that is a multiple of 9500KiB.
ed2k.js is licensed under the Apache License, Version 2.0. View the license file