美文网首页
egg-oss (egg文件上传)

egg-oss (egg文件上传)

作者: 头发飘逸 | 来源:发表于2020-08-03 09:47 被阅读0次

官网地址https://www.npmjs.com/package/egg-oss

安装

npm i egg-oss --save

配置

// config/plugin.js
exports.oss = {
  enable: true,
  package: 'egg-oss',
};

// config/config.default.js
config.multipart = {
    mode: 'file'
};

// oss存储
config.oss = {  // 这里需要的东西去自己的服务器里看,我用的阿里云
    client: {
        accessKeyId: 'your access key',
        accessKeySecret: 'your access secret',
        bucket: 'your bucket name',
        endpoint: 'oss-cn-hongkong.aliyun.com',
        timeout: '60s',
    },
}

使用

// app/controller/common.js
'use strict';

const Controller = require('egg').Controller;
const fs = require('mz/fs');
const path = require('path')
class CommonController extends Controller {
    // 上传
    async upload() {
        const ctx = this.ctx;

        if (!ctx.request.files) {
            return ctx.apiFail('请先选择上传文件');
        }

        const file = ctx.request.files[0];
        // const name = 'egg-oss-demo/' + path.basename(file.filename);
        const name = 'egg-oss-demo/' + ctx.genID(10) + path.extname(file.filename);
        let result;
        try {
            result = await ctx.oss.put(name, file.filepath);
        } catch (err) {
            console.log(err);
        } finally {
            await fs.unlink(file.filepath);
        }

        if (result) {
            return ctx.apiSuccess(result.url);
        }

        ctx.apiFail('上传失败');
    }
}

module.exports = CommonController;
// app/extend/context.js
// 生成唯一id
genID(length) {
    return Number(Math.random().toString().substr(3, length) + Date.now()).toString(36);
}

相关文章

  • egg-oss (egg文件上传)

    官网地址https://www.npmjs.com/package/egg-oss 安装 配置 使用

  • node|egg|egg-oss

    前端 egg 注: 添加header信息返回的链接是预览,不加返回链接打开直接下载 egg-oss api查看ht...

  • egg-multipart

    egg-multipart是一个处理文件上传的插件,下面我根据自己理解分析下这个插件源码。 egg默认配置egg-...

  • egg知识点复习

    1、头像上传 (1)、前端antd (2)、egg开启文件上传 (3)、接口 2、分页 3、用户鉴权(react)...

  • Egg.js学习与实战系列 · 文件上传配置

    在使用Egg.js搭建文件上传服务时,遇到了几个一般新手都会遇到的坑。经查阅官方文档,Egg框架中默认使用egg-...

  • 2022-05-18 关于egg-multipart图片上传jp

    egg-multipart是一个处理文件上传的egg相关插件,比较好用,获取file或者stream可以直接在 使...

  • egg.js 上传文件

    现在node.js 使用的框架有 Express,koa 还有分别基于nest.js 和 egg.js 。据说ne...

  • egg.js 文件上传

    1. 当文件不超过1mb,小文件 小文件的话就不需要使用文件流了需要在config.default.ts(egg....

  • egg实现服务之间上传文件

    直接请求 可直接在后端模拟 form-data 上传文件,请求第三方服务,上代码: 能上传成功的前提是 对方服务端...

  • egg配置安装:2019-09-26

    1.安装egg npm i egg-init -g 2.创建文件包 1. 创建一个文件夹 2.egg...

网友评论

      本文标题:egg-oss (egg文件上传)

      本文链接:https://www.haomeiwen.com/subject/laflrktx.html