The InterPlanetary File System is a peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open. IPFS uses content-addressing to uniquely identify each file in a global namespace connecting all computing devices.
It is an ideal solution for a decentralized storage for blockchain-based content and is optimized for the Algorand blockchain .
laravel-ipfs is a simple wrapper around the IPFS HTTP API with an elegant approach to connect your application to the IPFS network so you can easily host and fetch content with just a few lines of code.
Once installed, you can simply connect your application to the network and add content:
$ipfs->add(Utils::tryFopen('ipfs.png', 'r'), 'ipfs.png', ['pin' => true]);
or show IPFS object data:
$contents = $ipfs->cat('QmNZdYefySKuzF37CWjR8vZ319gYToS61r3v3sRwApXgaY');
Note: laravel-ipfs requires PHP 7.4+
You can install the package via composer:
composer require rootsoft/laravel-ipfs
Create an new IPFSClient
and pass the IP address and port of your local (or pinned) network.
$ipfs = new IPFSClient('127.0.0.1', 5001);
That's it! We can now easily add new content on a decentralized network!
We've added special support to make the life of a Laravel developer even more easy!
Publish the ipfs.php
config file using:
php artisan vendor:publish --provider="Rootsoft\IPFS\IPFSServiceProvider" --tag="config"
Open the config/ipfs.php
file in your project and insert your credentials
return [
'ipfs' => [
'base_url' => '127.0.0.1',
'port' => 5001,
],
];
Now you can use the IPFS
Facade!
$fileHash = IPFS::add($collectible->get(), $fileName, ['only-hash' => true])['Hash'];
Please see CHANGELOG for more information on what has changed recently.
Feel free to send pull requests.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.