renmu123/obsidian-image-auto-upload-plugin

能提供一下发送给picgo的上传接口吗,希望能用podman描述一下

Closed this issue · 9 comments

我想做个api服务部署到自己的服务器,这样和本地就不能跑picgo了

我参考https://picgo.github.io/PicGo-Doc/zh/guide/advance.html#http%E8%B0%83%E7%94%A8%E4%B8%8A%E4%BC%A0%E5%89%AA%E8%B4%B4%E6%9D%BF%E5%9B%BE%E7%89%87 用fastapi测试了一下接口,我通过picgo作者提供的接口,用poman工具测试我写的接口是能通过的。

但是在obsidian里面粘贴图片测试自己的api接口就报错了,是插件的upload接口不一样吗

这是我用flaskduan'di断点捕获的插件接口,看不出来长什么样子
image

我用以下代码测试,并没有发现发送给picgo-server的接口有body体,是不是流式传输图片的?

import json
from flask import Flask, request

app = Flask(__name__)


@app.route('/upload', methods=['POST', 'GET'])
def login():
    get_data = request.get_data()
    print(f"get_data={get_data}")
    # get_json= request.get_json()
    # print(f"get_json={get_json}")

    print(f"headers={request.headers}")

    ff = request.files.get("file")
    print(ff)

    stream = request._get_file_stream()
    print(f"stream={stream}")
    if get_data:
        get_data = json.loads(get_data)
        print(get_data)
    data = {'success': True, 'result': 'http://xxx.png'}
    return json.dumps(data, ensure_ascii=False)


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=36677)

希望大佬赐教

其中get_data打出来是空指

#106 (comment)

picgo支持传递的是本地文件路径,不支持文件,我不清楚有没有插件做过这种功能

我也觉得应该是穿本地文件路劲,可以是在obsidian里面实测(就是截个图,直接在ob里面粘贴),然后用接口接收,发现接口的数据没有body体啊。

能教一下你的插件代码里面大概是哪里发送接口的,我断点调试了你的代码,没找到

剪切板和批量上传的逻辑是不一致的,如果是剪切板那就不会传递参数给接口,如果是批量上传会将本地路径传递给接口

image
我没有定位到你的代码,那剪贴板的接口具体是什么样子的啊

我明白了,剪贴板没有body体,哈哈

你可以尝试使用最新版的picLIst或者piclist-core,已经支持远程上传