如何使用curl php将文件上传到pinata ipfs



我正在尝试使用curl和php将文件上传到Pinata IPFS。

我试图从下面的问题中修改现有的代码,但我得到了{"错误":{"原因":"INVALID_ROUTE","详细信息":"提供的路由与有效的Pinata端点不匹配"}}

如何使用curl php 将文件正确上传到pinata ipfs

这是上面链接中的修改代码:

$url = "https://api.pinata.cloud/pinning/pinFileToIPFS";
$boundary = uniqid();
$delimiter = '-------------' . $boundary;
$data = array(
'Content-Type' => 'multipart/form-data; boundary=' . $delimiter,
'pinata_api_key' => 'xxxxxxxx',
'pinata_secret_api_key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx');
$file = 'logo.jpg';
$data['file'] = $file;
$handle = curl_init($url);
curl_setopt($handle, CURLOPT_HEADER, true);
curl_setopt($handle, CURLOPT_HTTPHEADER, $data);
echo $result = curl_exec($handle);
if (curl_errno($handle)) {
echo "CURL ERROR - " . curl_error($handle);
}
else {
echo $result;
}
curl_close($handle);

我已经成功地将文件固定在IPFS中,请使用它

add file fpfs / Pin file in ipfs
/** create curl file */
$cFile = curl_file_create($_FILES['logo']['tmp_name'], $_FILES['logo']['type'], $_FILES['logo']['name']);
/** meta-key and meta-values */
$keyvalues = [
'company' => 'BDTASK',
'background' => '100% Trait',
'Color' => 'RED',
];
/** metadata array */
$metadata = [
'name' => 'This is test file',
'keyvalues' => $keyvalues,
];
/** post data array */
$post = array(
'file' => $cFile,
'pinataMetadata' => json_encode($metadata)
);
/** header info pinata jwt authentication */
$headers = array();
$headers[] = 'Authorization: Bearer Pinata-JWT';

$url = "https://api.pinata.cloud/pinning/pinFileToIPFS";       
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close($ch);
print_r($result); /** Found IPFS CID in here */

最新更新