个人图床的最简单制作-腾讯云COS

简介: 最终实现效果 在图片上右键上传,自动生成图片URL到剪切板中,任意地方Ctrl+v均可粘贴 在文件上右键上传,自动生成图片URL到剪切板中,任意地方Ctrl+v均可粘贴 准备工作COS...

最终实现效果

在图片上右键上传,自动生成图片URL到剪切板中,任意地方Ctrl+v均可粘贴

在文件上右键上传,自动生成图片URL到剪切板中,任意地方Ctrl+v均可粘贴

准备工作

COS

对象存储(Cloud Object Storage,COS)

我们需要一个空间,用于存放图片或者文件,这里推荐使用腾讯云或者七牛云

他们提供的免费额度足够普通用户使用了

腾讯云的免费额度

资源类型 资源子类型 每月免费额度
存储空间 存储空间 50 GB
流量 外网下行流量 10 GB
流量 腾讯云 CDN 回源流量 10 GB
请求 读请求 100 万次
请求 写请求 100 万次

本地环境

这里以腾讯云接口为例,本地需要nodejs运行环境

  • nodejs

  • 腾讯云SDK

    环境变量配置

  • windows环境变量中增加一项NODE_PATH,最好同时指向2处,例如:C:\Users\ZNMLR\node_modulesC:\Users\ZNMLR\AppData\Roaming\npm\node_modules最少指向一处

  • 前者对应npm的本地安装,后者对应npm的全局安装

使用

bat+js

打开注册表编辑器

WIN+R调用运行库,输入regedit,会打开注册表编辑器

找到计算机\HKEY_CLASSES_ROOT\*\shell

  • 新建项上传腾讯云,在此项下再次新建项command,并修改右侧默认值 cmd.exe /K "C:\yunCos\1.bat "%1""

在C盘根目录建文件夹:yunCos,新建1.bat,内容如下

  • @echo off
    node C:\yunCos\yunCos.js %1%
    exit
  • 新建 yunCos.js文件,内容暂空

安装腾讯云SDK

  • 安装运行环境 node.js

    这个没什么好说的,双击下一步就好了

  • 安装sdk

npm i cos-nodejs-sdk-v5 --save -g
  • 再次安装SDK

不要问我为何有这一步,腾讯云文档这样写的

先下载腾讯云SDK,解压,进入到解压后的目录里执行命令

D:\cos-nodejs-sdk-v5-master>npm install -g

获取腾讯云上传鉴权码

  • 请到腾讯云注册账号并实名认证,

  • 新建存储桶

  • 获取APPID、SecretId、SecretKey、存储桶名称、所属地域

    以上步骤请自行阅读腾讯云文档,这里不做说明

编写上传脚本

官方示例

// 引入模块
var COS = require('cos-nodejs-sdk-v5');
// 创建实例
var cos = new COS({
    AppId: '1250000000',   // 修改为自己的appid
    SecretId: 'AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', // 修改为自己的SecretId
    SecretKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', // 修改为自己的SecretKey
});
// 分片上传
cos.sliceUploadFile({
    Bucket: 'test', // 修改为自己的存储桶名称,由英文、数字和标点符号组成
    Region: 'ap-guangzhou', // 修改为自己的所属地域,应该是纯英文的部分
    Key: '1.zip', // 这个是远端的地址
    FilePath: './1.zip' // 这个是本地地址
}, function (err, data) {
    console.log(err, data);
});

修改后

var picsuffix=new Array(".jpg", ".png", ".bmp", ".jpeg");
function contains(arr, obj) {
  var i = arr.length;
  while (i--) {
    if (arr[i] === obj) {
      return true;
    }
  }
  return false;
}

var filepath=process.argv.splice(2).toString();
var filename = filepath.substring(filepath.lastIndexOf("\\")+1); 
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var urlkey=year+"/"+(month<10?'0'+month:month)+"/"+filename;
var suffix=filename.substring(filename.lastIndexOf("."), filename.length);

// 引入模块
var COS = require('cos-nodejs-sdk-v5');
// 创建实例
var cos = new COS({
    AppId: '*', // 修改为自己的appid
    SecretId: '*',// 修改为自己的SecretId
    SecretKey: '*',// 修改为自己的SecretKey
});
// 分片上传
cos.sliceUploadFile({
    Bucket: '*',// 修改为自己的存储桶名称,由英文、数字和标点符号组成
    Region: 'ap-guangzhou',// 修改为自己的所属地域,应该是纯英文的部分
    Key: urlkey,
    FilePath: filepath
}, function (err, data) {
    if(err){
        console.log(err);
    }
    else{
        console.log(data);
        const util = require('util');
        var url='';
        if (contains(picsuffix, suffix)) {
            url='![](https://'+data.Location+')';//这里返回的url是md格式,需要可自行更改
        }
        else {
            url='[](https://'+data.Location+')';//这里返回的url是md格式,需要可自行更改
        }
        require('child_process').spawn('clip').stdin.end(url);
    }
});

关联bat与上传脚本

打开刚才建的yunCos.js,将上面内容复制进去,并修改相关内容,保存
在任意文件上点击右键,选择 上传腾讯云 会有脚本框一闪而过,找个文本框粘贴下,就得到你想要的URL+


原文链接 blog.znmlr.cn


个人博客 hfanss.com

目录
相关文章
|
API 对象存储
腾讯云对象存储cos获取图片像素信息
简述获取图片像素信息的几种方案
腾讯云对象存储cos获取图片像素信息
|
存储 对象存储 数据安全/隐私保护
typora+腾讯云cos+Picgo图床搭建
typora+腾讯云cos+Picgo图床搭建
91 0
|
存储 API 对象存储
手把手教你Typora图床配置(PicGo+阿里云OSS/腾讯云COS)
手把手教你Typora图床配置(PicGo+阿里云OSS/腾讯云COS)
2319 0
|
存储 网络协议 大数据
腾讯云主机安装COSFS工具并使用COS对象存储
腾讯云主机安装COSFS工具并使用COS对象存储
669 0
腾讯云主机安装COSFS工具并使用COS对象存储
|
前端开发
文件上传到腾讯云cos的简单步骤
文件上传到腾讯云cos的简单步骤
1650 0
|
存储 Web App开发 安全
从腾讯云COS向华为云OBS迁移数据的解决方案
目前我们的云存储方案除了自己的对象存储外,还集成了腾讯云的COS存储。现在有一个新需求,要支持云存储数据向其他云存储迁移的能力,比如支持把腾讯云COS存储的数据迁移到华为云的OBS存储。这就是本文今天要讨论的主题,关于这个需求,调研得到的一些技术方案分享给大家,希望能帮到有需要的小伙伴。
543 0
Java springboot项目引入腾讯云COS实现上传
Java springboot项目引入腾讯云COS实现上传
|
6月前
|
弹性计算 关系型数据库 MySQL
数据传输DTS腾讯云上的mysql同步到阿里云上的mysql可以操作吗?
数据传输DTS腾讯云上的mysql同步到阿里云上的mysql可以操作吗?
311 0

热门文章

最新文章

下一篇
无影云桌面