cos文件存储

cos核心

腾讯云对象存储(COS)的使用,核心是创建存储桶 → 上传 / 下载 / 管理文件 → 配置权限与访问,支持控制台、工具、SDK/API 三种方式。下面是完整入门流程与常用操作指南。

注册使用

  1. 注册并登录 腾讯云账号https://console.cloud.tencent.com/cos,完成实名认证。
  2. 进入 对象存储 COS 控制台 。(同类于oss阿里云的对象存储)创建存储库和文件荚
  3. 在 访问管理 获取 SecretId / SecretKey,用于 API/SDK/ 工具调用。

上传图片

可通过vue直传,但会暴露信息

可通过node 后端上传的,安装multer @koa/multer依赖包,可上传图片,文件,视频,两者是相互依赖

  1. 包装依赖
javascript 复制代码
npm i -S @koa/multer multer //静态资源上传:img,video,
npm i -S cos-nodejs-sdk-v5  //腾讯云cos
  1. 创建cos的文件夹,创建cos.js文件
  2. 上传文件 使用cos的sdk上传
    cos.js文件
javascript 复制代码
const multer=require('@koa/multer')
const COS=require('cos-nodejs-sdk-v5')
var cos=new COS({
	SecretId:'改成自己的',
	SecretKey:'改成自己的',
	Protocol:'https:'
})
// 存储桶名称
let Bucket='改成自己的'
// 地域
let Region='ap-beijing'
// 文件夹名称
let Foldername='改成自己的/'
// 定义上传函数
let cosfun=function(filename,path){
	return new Promise((resolve,reject)=>{
		cos.uploadFile({
			Bucket,
			Region,
			Key:Foldername+filename,
			FilePath:path
		})
		.then(res=>{
			// console.log('success=',res)
			resolve(res.Location)
		})
		.catch(err=>{
			// console.log('err=',err)
			reject(err)
		})
	})
}
// 配置上传文件
// diskStorage磁盘存储引擎方法
const storage = multer.diskStorage({
	// 1.所在的目录
  destination:(req, file, cb)=>{
    cb(null, 'upload/image')
  },
	// 2.更改文件名
	filename: function (req, file, cb) {
    const uniqueSuffix = Date.now()
		const ori_name=file.originalname.split('.')
    cb(null, `wh-${uniqueSuffix}.${ori_name[ori_name.length-1]}`)
  }
})

const upload = multer({ storage: storage })

module.exports={upload,cosfun}

4.上传图片的接口

router/merchant-infor/infor.js

javascript 复制代码
const KoaRouter = require('koa-router');
const router = new KoaRouter();
// 统一给前端返回的body响应
const result=require('../../config/result.js')
// 操作数据库的接口
const {getToken,addUrl,searchUrl} = require('../../config/databaseapi.js')
// 校验
const {regCheck}=require('../../config/checking.js')
// 验证token合法性
const {Auth}=require('../../token/auth.js')
// 图片上传
const {upload,cosfun}=require('../../cos/cos.js')
// 图片上传接口upload.single('file')做为中间件
router.post('/uploadres',upload.single('file'),async ctx=>{
	// 接收前端上传的静态资源文件
	console.log('reback=',ctx.file)
	try {
		const res=await cosfun(ctx.file.filename,ctx.file.path)
		new result(ctx,'SUCCESS',200,'https://'+res).answer()
	} catch (error) {
		//TODO handle the exception
		new result(ctx,'上传失败,服务器发生错误',500).answer()
	}
	
})
// 商家信息上传
router.post('/uploadshop',new Auth().m, async ctx=>{
	const {id,name,address,logo}=ctx.request.body
	console.log(name)
})
module.exports=router.routes() 

5.在app.js中全局引入

javascript 复制代码
// 商家设置
const uploadres=require('./router/merchant-infor/infor.js')
// 配置路由登录
router.use('/api',uploadres)

6.利用Apipost测试上传图片

上传成功,打印回显

腾讯云显示

相关推荐
workflower20 小时前
智能体-企业行政问答助手
人工智能·机器学习·机器人·云计算·无人机
行业研究员1 天前
腾讯云数据库 PostgreSQL 让相关子查询跑上多核
数据库·postgresql·腾讯云
容器魔方1 天前
议程一览 | 华为云亮相 KubeCon + CloudNativeCon China 2026
人工智能·云原生·容器·开源·华为云·云计算
闲云野鹤在人间1 天前
云计算入门|网络与存储云服务知识梳理
linux·运维·服务器·网络·centos·云计算·php
2601_962295331 天前
腾讯云宣布上新CloudBase AI CLI:可减少80%编码量
腾讯云·cloudbaseaicli·aicli工具·减少编码量·serverless服务
论文复现现场2 天前
ComfyUI部署MiniMax H3:8G本地卡、RTX 4090和RTX 5090怎么选?
人工智能·云计算·音视频·gpu算力
Johny_Zhao2 天前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
腾讯云大数据2 天前
腾讯云AI Native数据平台功能发布合集【8月】
大数据·人工智能·云计算·腾讯云
ZStack开发者社区2 天前
虚拟化观察 第 001 期:ZSvirt 核心 IaaS 引擎开源,VMware Explore 2026 开幕,Proxmox VE 8 正式 EOL
架构·开源·云计算·vmware·云基础设施·proxmox
陈皮糖..2 天前
基于 Keepalived 的传统 Web 高可用架构的容器化改造与可观测性升级
运维·docker·性能优化·架构·云计算·prometheus