IPFS媒体库系统提供了简单易用的 RESTful API 接口,允许开发者将文件存储功能集成到自己的应用、博客或工具中。
主要特性:
为了防止滥用,所有 API 请求都需要进行身份验证。
您可以在 用户中心 -> API 密钥 中获取您的 API Token。
认证方式:支持以下两种方式传递 Token:
token=your_api_token
Authorization: Bearer your_api_token
或者
Authorization: your_api_token
| 接口地址 | https://ipfs.nycnm.cn/api/upload.php |
| 请求方法 | POST |
| Content-Type | multipart/form-data |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| file | File | 是 | 要上传的文件 (图片或视频) |
| token | String | 是 | API Token (也可以使用 Header 传递) |
{
"ok": true,
"url": "https://ipfs.nycnm.cn/ipfs/QmX...", // 完整文件链接
"filename": "image.jpg",
"size": 102400
}
{
"ok": false,
"message": "认证失败:请提供有效的 API Token"
}
curl -X POST https://ipfs.nycnm.cn/api/upload.php \
-F "file=@/path/to/image.jpg" \
-F "token=your_api_token"
import requests
url = "https://ipfs.nycnm.cn/api/upload.php"
files = {'file': open('image.jpg', 'rb')}
data = {'token': 'your_api_token'}
response = requests.post(url, files=files, data=data)
print(response.json())
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('token', 'your_api_token');
fetch('https://ipfs.nycnm.cn/api/upload.php', {
method: 'POST',
body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
$url = 'https://ipfs.nycnm.cn/api/upload.php';
$file = '/path/to/image.jpg';
$token = 'your_api_token';
$ch = curl_init();
$data = [
'file' => new CURLFile($file),
'token' => $token
];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
PicGo 是一款优秀的图片上传工具,您可以使用 Web-Uploader 插件或 Custom-Uploader 插件来对接本系统。
| API地址 | https://ipfs.nycnm.cn/api/upload.php |
| POST参数名 | file |
| 自定义Body | {"token": "your_api_token"} |
| JSON路径 | data.url |
将以下代码添加到主题的 functions.php 文件中:
// WordPress IPFS Upload Function
function upload_image_to_ipfs($file_path) {
$api_url = 'https://ipfs.nycnm.cn/api/upload.php';
$token = 'your_api_token';
$response = wp_remote_post($api_url, [
'body' => [
'token' => $token,
'file' => new CURLFile($file_path)
]
]);
if (is_wp_error($response)) return false;
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
if ($data && $data['ok']) {
return $data['url'];
}
return false;
}
Typecho 插件上传逻辑示例:
// Typecho Upload Handle
public static function uploadHandle($file) {
$api_url = 'https://ipfs.nycnm.cn/api/upload.php';
$token = 'your_api_token';
$ch = curl_init();
$data = [
'file' => new CURLFile($file['tmp_name'], $file['type'], $file['name']),
'token' => $token
];
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result && $result['ok']) {
return array(
'name' => $file['name'],
'path' => $file['name'],
'size' => $file['size'],
'type' => $file['type'],
'mime' => $file['type'],
'url' => $result['url']
);
}
return false;
}
Tampermonkey (油猴) 脚本示例:
// ==UserScript==
// @name IPFS Uploader
// @match *://*/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
(function() {
'use strict';
const API_URL = 'https://ipfs.nycnm.cn/api/upload.php';
const TOKEN = 'your_api_token';
// 示例:添加一个悬浮球或监听快捷键上传
console.log("IPFS Uploader ready");
})();