e-obsidian-upload-plugin

E Obsidian Upload Plugin

介绍

这是 Obsidian 插件,专用于上传文件到存储仓库。目前支持 Lskypro(兰空图床),后续有需求会引入其它存储方式,如:Github/Gitee等等。

功能特性

快速安装

通过 Obsidian 社区插件中搜索并安装

尝试在 Obsidian 社区插件中搜索 EUpload,若找到该插件,按照提示直接安装即可。

通过源码仓库或发布的文件下载安装

注意: [VaultFolder] 是根目录、[your-plugin-id] 是插件 id(manifest.json => id

通过第三方下载并安装

可尝试使用第三方插件进行安装,如:BRAT

操作指南

下面配置包含具体实例,请按需替换自己的内容。

Lskypro 配置

# 注意,URL 地址不添加 `/`
https://xxx.xxx.xxx/api/v1/upload
{
	"Authorization": "Bearer Jq7mTKdjN7BxMjLoG8Jj8eaGGV2GuurwumOGFCBm",
	"Accept": "application/json",
	"Content-Type": "multipart/form-data"
}

Authorization 必须,认证令牌,注意格式或空格,具体字段按需变更
Content-Type - 可选,类型

{
	"file": "$FILE",
	"strategy_id": 2
}

file - 必须,二进制文件,$FILE 为内置字段,不可变更
strategy_id - 可选,此处表示存储仓库ID,自行查阅 API

data.pathname
# 一般 API 只返回图片路径或者存在多个域名情况使用
# 注意,URL 地址添加 `/`
https://xxx.xxx.xxx/upload/eblog/

Halo 配置

# 注意,URL 地址不添加 `/`
https://xxx.xxx,xxx/apis/api.console.halo.run/v1alpha1/attachments/upload
{
	"Authorization": "Bearer pat_eyJraWQiOiI1SG9MUWVvUW10bV9zd2JISFRSODFEd1dUWVNyUUlyc0N3NjE2R1dQTXpnIiwiYWxnIjoiUlMyNTYifQ.eyJpc3MiOiJodHRwczovL2Jsb2cuZWxpbnp5LmNvbS8iLCJzdWIiOiJhZG1pbiIsImlhdCI6MTcxMTk1NjY5MiwianRpIjoiN2E5NDY3NjEtY2QzYi1kODc4LTJkOGMtZWQxNmUwZDk4NzFjIiwicGF0X25hbWUiOiJwYXQtYWRtaW4tbkdnZG0ifQ.cl7n0f9SqP5qwYUW2ZM6DL6Ex6Xh9GvxL_hwEDJuUn8tlyuzOhcjUqkGSCO1D8E0lqym7RtV7xDQzSLkQybKbSwRqeMEDbLbdLMDpzD2Vu1aptz5m0ifsm9pvpm2Wqnn_px68arhqHqmMwP-8N9F1m-fMu1ovBuXI2gzHA56Ne1yWsSObeasxqNP1CNsez_abdv0fPKxbBsV_2JrQeHYc0y90M8V0WZ9d3_zdrgOMg6Hm481VprrHUwB9nxrsVsCxd_ROwf93ZhGo_VPV5YG8_Pz4CwRGzkIABVHO1leUXyMD24nOpG9csGo-mauuik7oi1h6eLUMi2902qKFUctwRsF4lKQSP6h2Li9UUt0FYQp78uaTDbke3eAxLq1nqWfOn3Lplpe1tz8MPXtZGclx2xz4zkQWs5TdOU4cuukMIJoXfc1VCbAR9AuaG1BVMZYnL-scgg9I9GNHjtcfgFMskUaEKQlyYTNiIweaqQHMlBHvdxJjCMko9jdB2qnMNw9cs2QfMreK278A6ucHMOB9WGVh0thpor1gk2MvAcV3k-ai21BKUdOLooxftdXbI7V9xif_fLEZwFvtf2RtRqChJpXLyGS2-xoOwg00kz0khckv43vntSCPZ8pqHnTAWsy_ssf80WOajs2guY25l04PXAshEGndvziB0Aod3AoXdY"
}

Authorization 必须,认证令牌,注意格式或空格,具体字段按需变更

{
	"file": "$FILE",
	"policyName": "attachment-policy-gUpSV",
	"groupName": "attachment-group-JWlvm"
}

file - 必须,二进制文件,$FILE 为内置字段,不可变更
policyName - 可选,此处表示存储仓库,自行查阅 API groupName - 可选,此处表示分组名称,自行查阅 API

["metadata", "annotations", "storage.halo.run/uri"]
# 一般 API 只返回图片路径或者存在多个域名情况使用
# 注意,URL 地址添加 `/`
https://xxx.xxx.xxx/

Github 配置

https://docs.github.com/zh/rest/repos/contents?apiVersion=2022-11-28

# 注意,URL 地址不添加 `/`
https://api.github.com
{
	"Accept": "application/vnd.github+json",
	"Authorization": "token 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"
}

Authorization 必须,认证令牌,注意格式或空格,具体字段按需变更

{
	"owner": "Appleec",
	"repo": "e-test",
	"branch": "master",
	"path": "img/$PATH",
	"message": "From uploader Github",
	"content": "$CONTENT"
}

content - 必须,表示 base64 编码图片,$CONTENT 为内置字段,不可变更
owner - 必须,表示用户,自行查阅 API repo - 必须,表示仓库名,自行查阅 API path - 必须,表示文件路径,自行查阅 API branch - 可选,表示分支,自行查阅 API message - 必须,表示消息内容,自行查阅 API

["content", "download_url"]
# 一般 API 只返回图片路径或者存在多个域名情况使用
# 注意,URL 地址添加 `/`
https://xxx.xxx.xxx/

开发

该项目使用 TypeScript 提供类型检查和文档。 该存储库依赖于 TypeScript 定义格式的最新插件 API (obsidian.d.ts),其中包含描述其功能的 TSDoc 注释。

启动项目

git clone https://github.com/Appleec/e-obsidian-upload-plugin.git obsidian-upload-plugin

cd obsidian-upload-plugin

npm i

npm run dev

发布项目

API 文档

查看 https://github.com/obsidianmd/obsidian-api

下一步

参考文档