picGo 火山引擎imageX插件

imageX支持图片模板操作,设置模板可以给图片添加水印和压缩等操作;见下图,增加了水印并压缩了图片

插件依赖了'@volcengine/openapi
源码地址:gitee

const { imagex } = require('@volcengine/openapi')
const imagexService = new imagex.ImagexService()const config = (ctx) => {let userConfig = ctx.getConfig('picBed.imageX-uploader')if (!userConfig) {userConfig = {}}const config = [{name: 'accessKey',type: 'input',default: userConfig.accessKey || '',message: 'AccessKey不能为空',required: true},{name: 'secretKey',type: 'input',default: userConfig.secretKey || '',message: 'SecretKey不能为空',required: true},{name: 'serviceId',type: 'input',alias: 'serviceId',default: userConfig.serviceId || '',message: '服务Id',required: true},{name: 'region',type: 'input',alias: '地区',default: userConfig.region || 'cn-north-1',message: '例如:cn-north-1 (默认)',required: true},{name: 'host',type: 'input',alias: '地区host',default: userConfig.host || 'imagex.volcengineapi.com',message: '例如:imagex.volcengineapi.com (默认)',required: true},{name: 'imgTemp',type: 'input',alias: '图片模板',default: userConfig.imgTemp || '',message: '例如:tplv-jafkehkiym-1.png, 可以不配置',required: false},{name: 'customUrl',type: 'input',alias: '自定义域名',default: userConfig.customUrl || '',message: '例如:http://bucket.xxx.com',required: true}]return config
}/*** @description: 设置aksk* @param {string} AccessKeyId* @param {string} SecretKey* @return {*}*/
const setAkSk = (ctx, AccessKeyId, SecretKey, region, host) => {// 设置akskimagexService.setAccessKeyId(AccessKeyId)imagexService.setSecretKey(SecretKey)// 设置地域imagexService.setRegion(region)imagexService.setHost(host)
}const uploadImage = async (ctx, serviceId, img) => {const options = {serviceId: serviceId,files: [img]}ctx.log.info('上传')const res = await imagexService.UploadImages(options)ctx.log.info(res)return res
}const handle = async (ctx) => {const userConfig = ctx.getConfig('picBed.imageX-uploader')if (!userConfig) {throw new Error('未配置参数,请配置imageX上传参数')}const accessKey = userConfig.accessKeyconst secretKey = userConfig.secretKeyconst serviceId = userConfig.serviceIdconst region = userConfig.regionconst host = userConfig.hostconst imgTemp = userConfig.imgTempctx.log.warn('开始上传')// 设置配置信息setAkSk(ctx, accessKey, secretKey, region, host)const customUrl = userConfig.customUrltry {// 上次图片const imgList = ctx.outputfor (let i in imgList) {let img = imgList[i].bufferif (!img && imgList[i].base64Image) {img = Buffer.from(imgList[i].base64Image, 'base64')}const res = await uploadImage(ctx, serviceId, img)if (res.Result && res.Result.Results) {let url = res.Result.PluginResult[0].ImageUriif (imgTemp) {url += `~${imgTemp}`}ctx.log.info(url)delete imgList[i].base64Imagedelete imgList[i].bufferimgList[i]['imgUrl'] = `${customUrl}/${url}`} else {throw new Error('Upload failed')}}return ctx} catch (err) {if (err.error === 'Upload failed') {ctx.emit('notification', {title: '上传失败!',body: '请检查你的配置项是否正确'})} else {ctx.emit('notification', {title: '上传失败!',body: '请检查你的配置项是否正确'})}throw err}
}module.exports = (ctx) => {const register = () => {ctx.log.success('imageX加载成功')ctx.helper.uploader.register('imageX-uploader', {handle: handle,config: config,name: 'imageX'})}return {register,uploader: 'imageX-uploader'}
}

picgo-plugin-imageX火山引擎ImageX插件for picGo相关推荐

  1. 【推荐】对标Discuz!开源SNS系统Fresns上线~手把手启用火山引擎ImageX

    对标Discuz!开源SNS系统Fresns上线 Fresns是一款免费开源的社交网络服务软件专为跨平台而打造的通用型社区产品,支持灵活多样的内容形态,可以满足多种运营场景,符合时代潮流,更开放且更易 ...

  2. 在Kratos灵活的使用火山引擎ImageX的动态水印以及评测

    Kratos是什么 Kratos 是一款专注于用户阅读体验的响应式 WordPress 主题,整体布局简洁大方,针对资源加载进行了大量优化. 安装方法 下载最新发行版本的 .zip 格式安装包 git ...

  3. 火山引擎ImageX图片服务纯代码使用方法额度领取

    目前,字节跳动旗下火山引擎也推出了图片处理服务功能即ImageX图片服务,ImageX图片服务类似于七牛图片处理,即可以作为图床分发图片,缓解源站压力,而且也可以实时对图片进行处理,只需要在图片结尾添 ...

  4. WPJAM:支持火山引擎ImageX图像处理加速的WordPress插件

    字节跳动的火山引擎也推出了 veImageX 图片服务,veImageX 是面向站长群体提供图像.文档等各类素材上传.托管.智能处理和 CDN 分发一站式解决方案.我试了一下非常方便好用,所以我就整合 ...

  5. 支持ImageX图像处理的WordPress插件推荐-WPJAM插件

    WPJAM:支持ImageX图像处理加速的WordPress插件 字节跳动的火山引擎也推出了 veImageX 图片服务,veImageX 是面向站长群体提供图像.文档等各类素材上传.托管.智能处理和 ...

  6. 抖音1:1官方美颜·剪辑·插件原生sdk字节跳动-火山引擎官方伙伴优雅草发布----uniapp插件市场

    字节美颜插件uniapp发布 插件地址 介绍 说明 演示 使用说明 演示图: 抖音1:1官方美颜·剪辑·插件原生sdk字节跳动-火山引擎官方伙伴优雅草发布----uniapp插件市场 插件地址 插件下 ...

  7. 精品:千字长文手把手教你使用字节跳动的火山引擎veImageX

    经过我的研究发现,这个方法竟然比较通用,于是转载群发之 veImageX 是字节跳动旗下的火山引擎推出的图像.文档等各类素材上传.托管.智能处理和 CDN 分发一站式解决方案,WPJAM Basic ...

  8. 字节旗下火山引擎违规分发SkyWalking,更改所有包名、删除Apache基金会Header...

    记得前几天,DD在朋友圈刷到Apache SkyWalking创始人吴晟先生关于某云服务构建了商业化服务产品之后,未能做好相应的后续客服支持的吐槽. 商业化产品的用户,碰到问题,直接找到了开源支持方来 ...

  9. 没有大招的火山引擎,拿下70%大模型玩家

    鱼羊 发自 凹非寺 量子位 | 公众号 QbitAI 有没有在开发大模型?在学习. 什么时候发布大模型?没计划. 当被问起自研大模型,字节跳动副总裁杨震原口风甚严.但席卷全球的这场大模型竞逐战,没有人 ...

最新文章

  1. 重新认识笔记本锂电池的保养
  2. Ubuntu16.04安装Mininet
  3. 服务器显示rl112,【RL-TCPnet网络教程】第13章 RL-TCPnet之TCP服务器(下)
  4. zabbix 监控 tomcat/jvm性能
  5. IOS开发基础之单文件上传基础最原始的方式
  6. 数风·数林 | 炉石传说中的概率(声控篇)
  7. 【CodeForces】700 D. Huffman Coding on Segment 哈夫曼树+莫队+分块
  8. ASP.NET 2.0 - 如何于网页上新增包括图片在内的数据至数据库
  9. vivo21a点击android版本,VIVO X21A原厂线刷救砖包_内附工具可救砖
  10. Eclipse 反编译的中文乱码,和反编译看不到class文件部分解决方案
  11. ARcgis常用符号库(含字体库)_三调_二调_规划等
  12. 电力监控系统的研究与应用
  13. 用户心中十大最具影响力国产软件评选揭晓
  14. 基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计
  15. latex 删除脚注的标号
  16. 小项目之数据库设计经验分享
  17. vue 全局监听浏览器窗口关闭以及无痕模式场景提示
  18. AFNetworking源码学习 1
  19. P8775 [蓝桥杯 2022 省 A] 青蛙过河
  20. AMetal平台学习——初步了解篇

热门文章

  1. 第四百天 how can I 坚持
  2. 用百度地图定位公司位置-步骤详解
  3. yolov3 map、recall、p-r曲线可视化超详细
  4. 5G/NR PRACH和preamble如何与SSB进行映射?
  5. ZBrush 4R7完整功能解析、高效使用技巧,对新手入门极度友好
  6. 微软人工智能-服务和API.md
  7. 数学分析教程史济怀练习16.2
  8. 探秘 Vue3.0 - Composition API 在真实业务中的尝鲜姿势
  9. 使用npm命令时出现Cannot find module ‘semver‘
  10. 成就DBA的职业生涯