renmu123 / obsidian-image-auto-upload-plugin

auto upload image with picgo
MIT License
324 stars 34 forks source link

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

Closed m986883511 closed 11 months ago

m986883511 commented 11 months ago

我想做个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打出来是空指

renmu123 commented 11 months ago

https://github.com/renmu123/obsidian-image-auto-upload-plugin/issues/106#issuecomment-1705849774

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

m986883511 commented 11 months ago

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

m986883511 commented 11 months ago

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

renmu123 commented 11 months ago

https://github.com/renmu123/obsidian-image-auto-upload-plugin/blob/779eb16a506ccfe624dd98cd1fa846f7ebafceaa/src/uploader.ts#L23C52-L23C52

renmu123 commented 11 months ago

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

m986883511 commented 11 months ago

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

m986883511 commented 11 months ago

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

renmu123 commented 11 months ago

image

renmu123 commented 10 months ago

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