fliq / ipfs-laravel
:package_description
v0.1.0
2022-08-04 13:55 UTC
Requires
- fliq/ipfs: v0.1.1
- illuminate/support: ~9
Requires (Dev)
- orchestra/testbench: ~7
- pestphp/pest: ^1.21
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2024-09-30 01:43:32 UTC
README
在 Laravel 中与 IPFS 交互。
安装
通过 Composer
composer require fliq/ipfs-laravel
用法
基本用法
$cid = Ipfs::add('Hello, IPFS')->first()['Hash']; Ipfs::get($cid); // Hello, IPFS
配置
要发布你的配置,请运行
php artisan vendor:publish --tag=ipfs.config
添加文件
你可以使用 add()
方法灵活地向 IPFS 添加新文件。你可以从字符串、资源或数组中添加文件,数组将被 json 编码。使用数组键指定文件名。
第二个参数是选项数组,更多关于 IPFS 文档 的信息。 wrap-with-directory
选项将为目录创建额外的 CID。
$resource = fopen('path/to/file.mp3'); $results = Ipfs::add([ 'hello.txt' => 'Hello, IPFS!', 'file.mp3' => $resource, 'meta.json' => [ 'name' => 'Hello', 'properties' => [...], ], ], ['wrap-with-directory' => true]); $cid = $results->last()['Hash']; Ipfs::get("{$cid}/hello.txt"); // Hello, IPFS!
检索文件
你可以使用 cat()
、get()
和 json()
方法检索文件。
cat()
- 返回一个 StreamInterface
get()
- 返回一个字符串
json()
- 返回一个 json 解码的数组
$stream = Ipfs::cat($cid); $str = Ipfs::get($cid); $array = Ipfs::json($cid);
异步请求
使用 async()
方法进行异步请求。
异步请求返回 承诺
Ipfs::async()->add($file)->then(function(array $results) { $results[0]; // do something }); // or do multiple requests. $ipfs = Ipfs::async(); $promises = [ $ipfs->get($cid1), $ipfs->get($cid2), ]; $results = GuzzleHttp\Promise\Utils::unwrap($promises);
测试
$ composer test
贡献
请参阅 contributing.md 了解详细信息和一个待办事项列表。
安全
如果你发现任何安全问题,请通过电子邮件 author@email.com 而不是使用问题跟踪器。
致谢
许可
MIT。请参阅 许可文件 获取更多信息。