coding-picbed

Upload file to coding repository and Get Url

Usage no npm install needed!

<script type="module">
  import codingPicbed from 'https://cdn.skypack.dev/coding-picbed';
</script>

README

Coding 图床

基于 Coding 企业版仓库的图床。通过『静态网站』或公开源代码的方式获得外链链接。使用 Coding 个人令牌 API 上传图像。

安装

npm install coding-picbed

用法

const coding = require('coding-picbed')({
    token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    repository: 'https://imlinhanchao.coding.net/imlinhanchao/upload-file'
});
const path = require('path');
const fs = require('fs');

router.post('/upload', async (req, res, next) => {
    let data = req.files[0].buffer;
    let filename = req.files[0].originalname;
    let filepath = path.join(__dirname, filename);

    fs.writeFileSync(filepath, data)
    let upload = await coding.upload(filepath, '/', filename);
    fs.unlinkSync(filepath);

    res.json(upload);
})

或者

const { Coding } = require('coding-picbed');
const path = require('path');
const fs = require('fs');

router.post('/upload', async (req, res, next) => {

    let coding = new Coding();
    await coding.config({
        token: req.query.token,
        repository: req.query.repo
    });

    let data = req.files[0].buffer;
    let filename = req.files[0].originalname;
    let filepath = path.join(__dirname, filename);

    fs.writeFileSync(filepath, data)
    let upload = await coding.upload(filepath, '/', filename);
    fs.unlinkSync(filepath);

    res.json(upload);
})

准备

  1. 您需要在个人设置访问令牌中创建访问令牌. 只需要开放 project|project:depot|project:file 权限即可。 2. 创建用于上传文件的存储库,开通『构建与部署』中静态网站服务或公开仓库源代码。

函数

配置上传选项

async function config({ token, repository });

参数对象

|键|描述| |--|--| |token|你创建的 Coding 访问令牌。| |repository|你的用于上传文件存储库地址。|

检查初始化状态

async function isInitialized();

返回值

bool - true 表示完成初始化。

上传文件

async function upload(filepath, dir, filename);

参数对象

|键|描述| |--|--| |filepath|您要上传的文件路径。| |dir|你要保存到仓库的文件夹,若不存在会自动创建。(可选)| |filename|你要保存到仓库的文件名。(可选)|

返回值

|键|描述| |--|--| |filename|最终上传的文件名。| |urls|所有可用的 Web 访问地址。|

注意事项

配置 Coding 存储库地址和访问令牌后,大约需要几秒钟来获取 Coding 仓库的信息。因此,请不要在配置后立即上传。你可以使用 isInitialized 检查初始化是否已完成,或者使用 await 等待配置完成。