Go+beego接入OSS上传
路由
f, h, err := c.GetFile("uploadFile")
if err != nil {
logx.Error("getfile err ", err)
rq.ThrowErrorMessage("未找到文件")
return
}
//存到服务器的地址
filePath := "static/upload/" + h.Filename
defer func() {
f.Close()
os.Remove(filePath)
}()
// 保存位置在 static/upload, 没有文件夹要先创建
c.SaveToFile("uploadFile", filePath)
res, err := aliclound.UploadAvatar(filePath)
if err != nil {
rq.ThrowErrorMessage("上传失败-1,请联系小客服")
return
}
//写表
log := models.TImage{
PosterId: int(rq.UserId),
PostTime: time.Now(),
FileName: res,
Type: "user_avatar",
}
_, err = core.DB().Insert(log)
if err != nil {
logx.Error("插入头像失败:" + err.Error())
rq.ThrowErrorMessage("上传失败-2,请联系小客服")
return
}
传到oss
需要的库:"github.com/aliyun/aliyun-oss-go-sdk/oss"
const (
Object_Avatar = "prod/image/"
)
func UploadAvatar(filePath string) (string, error) {
return upload(Object_Avatar, filePath)
}
func upload(objectName string, filePath string) (fileName string, err error) {
// 创建OSSClient实例。
// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
client, err := oss.New("", "", "")
if err != nil {
fmt.Println("aliclound:upload:Error1:", err)
return fileName, err
}
bucketName := "test"
if core.CheckServerMode() {
bucketName = "server"
}
// 填写存储空间名称,例如examplebucket。
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("aliclound:upload:Error2:", err)
return fileName, err
}
//随机文件名
fileName = convert.GetDay() + "-" + util.UUID()
// 依次填写Object的完整路径(例如exampledir/exampleobject.txt)
// 本地文件的完整路径(服务器上存图片的路径)。
err = bucket.PutObjectFromFile(objectName+fileName, filePath)
if err != nil {
fmt.Println("aliclound:upload:Error3:", err)
return fileName, err
}
return fileName, err
}
Go+beego接入OSS上传的更多相关文章
- 关于 tp5.0 阿里云 oss 上传文件操作
tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题 应该是移动后的路劲(相对于服 ...
- oss上传文件0字节
最近使用oss上传文件,不同项目中使用的版本也不同,之前的都能正常上传,最近因需要添加ObjectMetaData属性,扩展了一个方法,发现上传的文件始终是0字节的,最终跟源码发现conntentLe ...
- TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片
**TP5+阿里云OSS上传文件第三节,实现淘宝上传商品图片首先我们来看看淘宝的功能和样式:** 之后看看制作完成的演示:(由于全部功能弄成GIF有点大,限制上传大小好像在1M之内,压缩之后也有1.9 ...
- c#版阿里云oss上传——基于layui、pupload的oss 后端web端直传的vue组件
废话前言 去年,做项目用到oss上传,度娘上逛了一圈写了个前后端代码结合的c#版oss上传. 今年又要用到oss上传时发现很难复用,复用改动的范围太大,显然这个轮子不合格.于是想了下,花了一天的时间( ...
- OSS上传文件到阿里云
最近做项目,需要上传文件,因为上传到项目路径下,感觉有时候也挺不方便的,就试了一下上传文件到阿里云oss上去了, oss的使用网上有很多介绍,都是去配置一下需要的数据,然后直接调用他的api就可以了. ...
- oss上传和下载的笔记
<<<<<<<<<对oss操作,上传文件>>>>>>>>>>>>>& ...
- 处理OSS上传失败一例
问题描述: 上传oss云存储,无法成功,报错: 2019-01-29 17:44:59,552 oss2.api [ERROR] 140080008111872 : Exception: {'stat ...
- CentOS命令行向OSS上传文件或文件夹
下载地址:https://helpcdn.aliyun.com/document_detail/50452.html?spm=a2c4g.11186623.4.2.KyQak3 百度云盘:https: ...
- cocos2d-x 贡献一个oss上传脚本
平常写前端项目和H5游戏时特别频繁的一个操作就是上传到oss上,特别浪费时间.所以用ali-oss写了一个脚本.配置属性后直接npm run oss就能上传到oss上了.再也不需要手动操作.现在是脚本 ...
- 阿里云oss上传文件如何支持https?
let client = new OSS.Wrapper({ accessKeyId: res.data.accessKeyId, accessKeySecret: res.data.accessKe ...
随机推荐
- vulnhub靶场之RED: 1
准备: 攻击机:虚拟机kali.本机win10. 靶机:RED: 1,地址我这里设置的桥接,,下载地址:https://download.vulnhub.com/red/Red.ova,下载后直接Vi ...
- 教你如何解决T+0的问题
摘要:T+0查询是指实时数据查询,数据查询统计时将涉及到最新产生的数据. 本文分享自华为云社区<大数据解决方案:解决T+0问题>,作者: 小虚竹 . T+0问题 T+0查询是指实时数据查询 ...
- day09-Tomcat01
Tomcat01 1.WEB开发介绍 WEB,在英文中WEB表示网/网络资源,它用于表示WEB服务器(主机)供浏览器访问的资源 WEB服务器(主机)上供外界访问的Web资源为: 静态web资源(如ht ...
- C# 获取打开的EXCEL中某列的行数
背景 在通过C#操作EXCEL时 获取行数 int iRowCount = worksheet.get_Range("A65535", oMissing).get_End(MExc ...
- java将流量KB转换为GB、MB、KB格式
/** * 转换流量格式为xxGBxxMBxxKB * @param flow 156165(xxxxxx) */ public String changeFlowFormat(String flow ...
- java将秒数转换为时分秒格式
/** * 转换时间格式为xx小时xx分xx秒 * @param second xxxxx */ public String changeTimeFormat(String second) { Int ...
- 成熟企业级开源监控解决方案Zabbix6.2关键功能实战-下
@ 目录 实战 Zabbix server源码安装使用示例 部署 配置 Zabbix agent2使用示例 部署 配置 Zabbix proxy使用示例 部署 配置 自定义监控使用示例 触发器使用示例 ...
- os模块、sys模块、json模块、json模块实战
目录 os模块 创建目录(文件夹) 删除目录(文件夹) 列举指定路径下内容名称 删除/重命名文件 获取/切换当前工作目录 动态获取项目根路径(重要) 判断路径是否存在(文件.目录) 路径拼接(重要) ...
- Linux deb系统 nginx 配置解析php
如果你是root用户可以不加sudo 首先安装php php-fpm nginx sudo apt-get install php php-fpm nginx -y nginx 是一个轻量级的http ...
- java.util.Date和java.util.Calendar
Date date = new Date();//分配初始化一个Date()对象 Calendar cal = Calendar.getInstance();//获取一个基于当前时间的日历 int d ...