mirror of https://github.com/oceanprotocol/ipfs
36 lines
823 B
JavaScript
36 lines
823 B
JavaScript
|
import ipfsClient from 'ipfs-http-client'
|
||
|
import { ipfsNodeUri } from '../config'
|
||
|
|
||
|
export async function saveToIpfs(files) {
|
||
|
const { hostname, port, protocol } = new URL(ipfsNodeUri)
|
||
|
|
||
|
const ipfsConfig = {
|
||
|
protocol: protocol.replace(':', ''),
|
||
|
host: hostname,
|
||
|
port: port || '443'
|
||
|
}
|
||
|
|
||
|
const ipfs = ipfsClient(ipfsConfig)
|
||
|
|
||
|
const file = [...files][0]
|
||
|
let ipfsId
|
||
|
const fileDetails = {
|
||
|
path: file.name,
|
||
|
content: file
|
||
|
}
|
||
|
const options = {
|
||
|
wrapWithDirectory: true,
|
||
|
progress: prog => console.log(`received: ${prog}`)
|
||
|
}
|
||
|
|
||
|
try {
|
||
|
const response = await ipfs.add(fileDetails, options)
|
||
|
|
||
|
// CID of wrapping directory is returned last
|
||
|
ipfsId = `${response[response.length - 1].hash}/${fileDetails.path}`
|
||
|
return ipfsId
|
||
|
} catch (error) {
|
||
|
console.error(error.message)
|
||
|
}
|
||
|
}
|