Giter VIP home page Giter VIP logo

picgo-plugin-free-uploader's Introduction

picgo-plugin-free-uploader

介绍

  • author: yuanyxh
  • submit for the first time: 2023/3/1
  • description: a plugin for PicGo

一个 PicGo 插件,用于自定义上传图片,灵感来源于 web-uploader,因为作者所使用图床上传接口需要动态参数,web-uploader 不支持,于是生出了自己开发一个自定义图片上传插件的想法。

安装

克隆本项目至本地

git clone https://github.com/yuanyxh/picgo-plugin-free-uploader.git

进入项目根目录并安装插件所需依赖

npm install

下载 PicGo 并导入本项目

20230303124129

基本配置

导入项目后可在 插件设置图床设置 中配置基本参数。

url

必填项,上传的接口 url

param

必填项,请求参数的 key

20230303125239

navigation

可选项,接口返回数据中图片所在的路径,比如上传成功后接口返回如下数据

{
  "success": true,
  "data": {
    "filename": "wechat.png",
    "size": 32,
    "url": "https://no-address/wechat.png"
  }
}

那么对应的路径就是 data.url

headers

可选项,自定义请求头,标准 JSON 格式。

body

可选项,自定义请求体,标准 JSON 格式。

高级配置

基本配置已经能够满足大部分场景,但依旧不够灵活,无法提供部分图床上传接口所需的参数,比如获取当前时间戳、参数加密等,为此我添加了高级配置,允许用户提供 自定义脚本 以获取所需参数。

定义

自定义脚本应为一个 .js 文件,其中应实现一个 handle 函数,该函数需要返回一个包含 headersbody 或两者兼备的对象,一个满足要求的自定义脚本如下:

// test.js
function handle() {
  return {
    headers: {},
    body: {}
  }
}

导入脚本

通过 插件设置 -> 选择本地脚本 导入你的脚本文件

20230303133643

安全

需要注意的时,脚本代码是运行在沙箱 (sandbox) 环境下的,这意味着你无法使用绝大部分已知的 Api,这是为了安全考虑,但同时,插件还提供了一些可能需要使用的 Api,比如

crypto

crypto 是一个 node.js 模块,提供了加密相关的 Api,使用它能完成一些基本的加密操作。

base64

这是一个简单封装的 base64 编解码对象,包含 encodedecode 方法,只支持字符串,使用

base64.encode('123456');
base64.decode('MTIzNDU2');

log

这是一个简单封装的函数,用于调试输出,输出存放在 picgo 默认的日志文件中,使用

log('test');

除了上述接口,还有一些没有被沙箱屏蔽的 Api 可供使用,如日期对象 Date

未来也可能会逐步添加新的 Api 以及其他功能。

picgo-plugin-free-uploader's People

Contributors

yuanyxh avatar

Stargazers

 avatar  avatar

Watchers

 avatar

picgo-plugin-free-uploader's Issues

读取了一个undefined的值

非常感谢您提供的picgo的插件,它十分符合我的需要,但是好像出了一点小问题.
我自己为cloudinary图床在vercel上新建了一个function call
它只需要在formdata请求中提供两个参数

  • file => 文件
  • uploadKey =>自定义的key

在我的本地postman测试中,这个function call运行良好,但是当我将参数配到picgo时,picgo插件报错了
插件的配置很简单和明了,我不知道在哪里出错了,能提供一些建议吗,十分感谢.
这是具体的错误信息:错误信息图

请求路径可以尝试调用这个排查https://custom-pic-upload.vercel.app/api/cloudinaryProcess
uploadKey如上图所示

vercel function call的仓库地址在这仓库地址

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.