fliq/ipfs-laravel

v0.1.0 2022-08-04 13:55 UTC

This package is auto-updated.

Last update: 2024-09-30 01:43:32 UTC


README

Latest Version on Packagist Total Downloads Build Status StyleCI

在 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()
  • 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。请参阅 许可文件 获取更多信息。