解决[GIN-debug] redirecting request 307和301并允许跨域请求
今天我在用app调试写好的后端接口时,遇到了下面的报错:
[GIN-debug] redirecting request 307: /douyin/user/login –> /douyin/user/login?username=wxy&password=123456
我的路由逻辑如下:
1234567891011121314func NewRouter() *gin.Engine { r := gin.Default() v1 := r.Group("/douyin") { v2 := v1.Group("/user") { v2.POST("/register", http.RegisterHandler) v2.POST("/login", http.LoginHandler) v2.GET("/", http.UserInfoHandl ...
使用PicGo+Github搭建免费图床
简述PicGoPicGo: 一个用于快速上传图片并获取图片 URL 链接的工具
PicGo 本体支持如下图床:
七牛图床 v1.0
腾讯云 COS v4\v5 版本 v1.1 & v1.5.0
又拍云 v1.2.0
GitHub v1.5.0
SM.MS V2 v2.3.0-beta.0
阿里云 OSS v1.6.0
Imgur v1.6.0
特色功能
支持拖拽图片上传
支持快捷键上传剪贴板里第一张图片
Windows 和 macOS 支持右键图片文件通过菜单上传 (v2.1.0+)
上传图片后自动复制链接到剪贴板
支持自定义复制到剪贴板的链接格式
支持修改快捷键,默认快速上传快捷键:command+shift+p(macOS)| control+shift+p(Windows\Linux)
支持插件系统,已有插件支持 Gitee、青云等第三方图床
更多第三方插件以及使用了 PicGo 底层的应用可以在 Awesome-PicGo 找到。欢迎贡献!
支持通过发送 HTTP 请求调用 PicGo 上传(v2.2.0+)
从我个人的使用体验上看,可以大幅度提高写作生产力 ...
大厂程序员使用Redis案例——连续签到
Redis简介Redis(全称为Remote Dictionary Server)是一个开源的高性能键值对存储系统,具有快速、灵活和可扩展的特性。它是一个基于内存的数据结构存储系统,可以用作数据库、缓存和消息代理。
Redis 支持多种数据结构,包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。这些数据结构提供了丰富的操作命令,使得开发者可以方便地处理各种数据需求。此外,Redis 还提供了两种持久化方式,即快照(Snapshotting)和日志追加(Append-only file,AOF)。快照方式将 Redis 内存数据以二进制格式写入磁盘,而 AOF 则通过追加记录 Redis 的操作命令来实现持久化。
Redis 还支持发布/订阅模式,可以用作消息代理。发布者将消息发送到指定的频道,订阅者则可以接收和处理这些消息。这种模式在构建实时通信、事件驱动系统和消息队列等场景中非常有用。此外,Redis 还可以通过主从复制和分片来实现数据的分布式存储和高可用性。主从复制可以将数据复制到多个从节点,实现读写分离和数 ...
完美解决Github提交PR后报错:File is not gofumpt-ed (gofumpt)
问题阐述最近在Github上提交PR后,遇到了这么一个问题:golangci-lint运行失败,具体原因是File is not gofumpt-ed (gofumpt)。
名词解释golangci-lint: golangci-lint 是Go语言社区中常用的代码质量检查工具,它可以帮助开发者发现代码中的潜在问题和不规范之处。它集成了多种代码检查工具,用于检查代码风格、静态分析、性能问题等。
可以在本地使用该工具,会输出当前项目的警告与错误等。
123//前提确保`GOPATH/bin`在path环境变量里go install github.com/golangci/golangci-lint/cmd/golangci-lint@latestgolangci-lint run
gofumpt: gofumpt 是一个用于格式化Go代码的工具,它是 gofmt 的替代品。gofmt 是Go语言官方提供的代码格式化工具,而 gofumpt 是在 gofmt 基础上进行改进的,旨在强制执行一种更加一致和规范的代码风格。
123//前提确保`GOPATH/bin`在path环境变量里g ...
Ubuntu详细配置Golang开发环境
下载Go SDK
1wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz
解压到/usr/local目录下,看个人喜好更改路径
1sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
没有tar执行sudo apt install tar下载。
配置环境变量
123sudo vim ~/.bashrc #推荐 #或者sudo vim /etc/profile
没有vim执行sudo apt install vim下载。
通过vim进入配置文件后,输入i,进入编辑模式,在配置文件加入以下内容:
12345export GOPATH=/usr/local/go/go_workspaceexport GOROOT=/usr/local/goexport GOPROXY=https://goproxy.cnexport GO111MODULE=onexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin
敲ESC键,输入: ...
字节资深程序员经验分享——学习后端之路
入门后端
后端没有界面,代码写完不知道能有什么用、能给谁用。选一个熟悉的编程语言,例如go、java,自己写一个网站,有文章发布和展示功能。这样就能直观的感受到后端在互联网世界中的作用。青训营的大项目就能起到这个作用。
我知道后端程序可以做数据的增删改查了,我要深入的去学习一个语言的技术栈。选哪个呢?Java、Golang、Python、C/C++等等。
服务端方向:字节Golang;美团、阿里、京东等Java;百度C++/PHP/Golang
大数据方向:Java
中间件方向:Java/C++/Golang/Rust
学习后端的知识体系很多、确实非常多。慢慢来,就从青训营的大项目开始:Golang、MySQL,先从这两项开始吧~【Golang】: slice、map、goroutine、并发控制(锁)。上面4项在什么场景使用,底层数据结构是什么。【MySQL】︰索引的数据模型是什么、实际存储在硬盘上的物理模型是什么。可以从Golang和MySQL慢慢拓展到更多的知识领域。例如:高性能、高并发、分布式等。在青训营的后端课 ...
Windows编译ffmpeg教程
安装MSYS2msys2是一款跨平台编译套件,它模拟linux编译环境,支持整合mingw32和mingw64,能很方便的在windows上对一些开源的linux工程进行编译运行。类似的跨平台编译套件有:msys,cygwin,mingw
优势:
相对于 cygwin 和 msys 等环境,它支持 pacman 包管理器,这意味着你可以很方便的安装所需要的软件包和开发库,而不需要自己去找源码编译
支持多种编译环境,可以很方便的整合 mingw 和 clang,自身也是基于cygwin的一个简单开发环境,可以通过 pacman 包管理器很方便的安装对应编译环境的开发库。msys2的安装目录结构如下:
为什么要安装MSYS2呢?因为ffmpeg对windows不够友好。
点击这里MSYS2进入官网,按如下步骤进行操作:
安装路径可自选:
配置建议打开MSYS2 MINGW64进行以下所有步骤。
如果你用的默认的MSYS2 MSYS也就是我最开始的方式也没关系,请听我继续道来。
可以看到我最开始就用的MSYS2 MSYS:
执行命令pacman -S mingw-w64-x8 ...
用beego实现上传文件到七牛云
安装执行命令:
1go get github.com/qiniu/go-sdk/v7
获取凭证Go SDK 的所有的功能,都需要合法的授权。授权凭证的签算需要七牛账号下的一对有效的Access Key和Secret Key,这对密钥可以通过如下步骤获得:
点击注册🔗开通七牛开发者帐号
如果已有账号,直接登录七牛开发者后台,点击这里🔗查看 Access Key 和 Secret Key
配置app.conf首先咱们在app.conf里配置好凭证等信息:
1234SecretKey = your secretkeyAccessKey = your accesskeyBucket = your bucketDomain = your domain
上代码我将上传文件的代码封装在了函数Upload里:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970package c ...
Xorm开发详细文档
介绍xorm是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。xorm的目标并不是让你完全不去学习SQL,我们认为SQL并不会为ORM所替代,但是ORM将可以解决绝大部分的简单SQL需求。xorm支持两种风格的混用。
特性
支持Struct和数据库表之间的灵活映射,并支持自动同步
事务支持
同时支持原始SQL语句和ORM操作的混合执行
使用连写来简化调用
支持使用Id, In, Where, Limit, Join, Having, Table, SQL, Cols等函数和结构体等方式作为条件
支持级联加载Struct
Schema支持(仅Postgres)
支持缓存
支持根据数据库自动生成xorm的结构体
支持记录版本(即乐观锁)
内置SQL Builder支持
通过EngineGroup支持读写分离和负载均衡
支持的数据库
Mysql: github.com/go-sql-driver/mysql
MyMysql: github.com/ziutek/mymysql/godrv
Postgres: github ...
完美解决git报错fatal unable to access ‘https://github.com/.../.git‘:Recv failure Connection was reset
在使用git时,经常会碰到这个错误:fatal: unable to access 'https://github.com/.../.git':Recv failure Connection was reset。
结合我个人最近的使用经验,提供两个方法,亲测有效。
方法一该方法也是最常见的方法,那就是在终端执行:
12git config --global --unset http.proxy git config --global --unset https.proxy
方法二本人之前在使用git时,有些时候使用方法一就能解决问题,有些时候还是会报错,下面这个方法,能够完美地解决报错。
系统设置搜索代理,然后点击编辑按钮:
打开代理服务器,端口设置为7890,这个对你正常上网没有影响,可以放心设置。然后点击保存。
然后在终端输入命令:
1git config --global http.proxy http://127.0.0.1:7890
这样就大功告成了。可以在终端输入git config --global -l加以检验是否设置成功:
设置完后你就能愉快的使 ...