Skip to content

micheldejoode/browser-ipfs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Browser friendly ipfs.js light

This is meant to implement the most common use cases for using ipfs in a browser. It has zero dependencies.

It meant to be mostly compatible with ipfs.js with a few key differences:

  • no specific support for Buffers. Buffer's still work, see caveat below in documentation for ipfs.cat
  • only implements simple add and cat functionality
  • Basically if you're using ipfs as a simple KV store, this should do the trick

Run npm install browser-ipfs

Or reference dist/ipfs.min.js inside a <script /> to expose the global ipfs

Example

1) Set IPFS CORS access

   ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["*"]'
   ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]'
   ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]'

2) Start IPFS

   ipfs daemon

3) Upload example directory

git clone https://github.com/ConsenSys/ipfs.js && cd ipfs.js

For non-default ipfs configurations, you can run ./example.url to ipfs add -r example and print the local gateway's url

4) Open IPFS gateway

Navigate to the url echoed from ./example.url in the browser, or run ./example.url | xargs open to open it on OSX

Methods

ipfs.setProvider({host: 'localhost', port: '5001'})

  • localhost and 5001 are the defaults when calling without arguments
  • is also equivalent to ipfs.setProvider({host: '/ip4/127.0.0.1/tcp/5001'})

ipfs.setProvider(require('ipfs-api')('localhost', '5001'))

ipfs.add(stringOrBuffer, callback)

ipfs.add("Testing...", function(err, hash) {
	if (err) throw err; // If connection is closed
	console.log(hash); 	// "Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt"
});

ipfs.cat(hash, callback)

Since we want to avoid including Buffer as a specific dependency. You need to manually convert the data returned from cat to a Buffer if that is what you're expecting.

ipfs.cat("Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt", function(err, data) { if (err) throw err; console.log(new Buffer(data,'binary').toString()); // "Testing..." });

ipfs.catText(hash, callback)

ipfs.cat("Qmc7CrwGJvRyCYZZU64aPawPj7CJ56vyBxdhxa38Dh1aKt", function(err, text) {
	if (err) throw err;
	console.log(text); 	// "Testing..."
});

new buffer.Buffer(data, 'binary')

ipfs.addJson(json, callback)

ipfs.catJson(hash, callback)

About

Simple browser compatible ipfs.js interface

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 94.4%
  • HTML 5.6%