#!/usr/bin/env node
import { create as ipfsClient } from 'kubo-rpc-client'
import { prepare, encode } from '@ipld/dag-pb'
import { UnixFS } from 'ipfs-unixfs'
const ipfs = ipfsClient('http://localhost:5001')
try {
const content = '¡Hello, World!'
const file = new UnixFS({
type: 'file',
data: (
typeof content === 'string' ? (new TextEncoder().encode(content)) : (content)
),
})
const fileNode = prepare({ Data: file.marshal(), Links: [] })
const fileBytes = encode(fileNode)
const start = await ipfs.add(fileBytes, { layout: 'dag-pb' })
console.info(`Start CID: ${start.cid.toString()}`)
const dir = new UnixFS({ type: 'directory' })
const dirNode = (
prepare({
Data: dir.marshal(),
Links: [{ Hash: start.cid, Name: 'hello.txt', Tsize: file.fileSize() }],
})
)
const dirBytes = encode(dirNode)
const final = await ipfs.add(dirBytes, { layout: 'dag-pb' })
console.info(`Final CID: ${final.cid.toString()}`)
} catch(error) {
console.error(`Error: ${error.message}`)
console.error(error.stack)
}
#!/usr/bin/env node
import { create as ipfsClient } from 'kubo-rpc-client'
import { prepare, encode } from '@ipld/dag-pb'
import { UnixFS } from 'ipfs-unixfs'
const ipfs = ipfsClient('http://localhost:5001')
try {
const content = '¡Hello, World!'
const file = new UnixFS({
type: 'file',
data: (
typeof content === 'string' ? (new TextEncoder().encode(content)) : (content)
),
})
const fileNode = prepare({ Data: file.marshal(), Links: [] })
const fileBytes = encode(fileNode)
const start = await ipfs.add(fileBytes, { layout: 'dag-pb' })
console.info(`Start CID: ${start.cid.toString()}`)
const dir = new UnixFS({ type: 'directory' })
const dirNode = (
prepare({
Data: dir.marshal(),
Links: [{ Hash: start.cid, Name: 'hello.txt', Tsize: file.fileSize() }],
})
)
const dirBytes = encode(dirNode)
const final = await ipfs.add(dirBytes, { layout: 'dag-pb' })
console.info(`Final CID: ${final.cid.toString()}`)
} catch(error) {
console.error(`Error: ${error.message}`)
console.error(error.stack)
}