Golang 上传静态文件到阿里云OSS
阿里云官方API参考
·
GOlang上传静态文件到阿里云OSS
参考文档
阿里云官方API
https://help.aliyun.com/document_detail/88601.html
已服务运行
https://blog.csdn.net/daily886/article/details/103366145
参考
https://blog.csdn.net/qq_36034503/article/details/123696273
jenkins
https://blog.csdn.net/xujiamin0022016/article/details/108859168
架构图
拉取代码
package main
import (
"fmt"
"os"
"os/exec"
)
func main() {
// 判断当前环境是否有 Git
if _, err := exec.LookPath("git"); err != nil {
fmt.Println("当前没有Git环境,建议你安装一下Git环境")
return
}
// 执行 git clone 命令克隆代码仓库,并输入账户密码
cmd := exec.Command("git", "clone", "-b", "oss", "xxxx", "D:/impromptu")
cmd.Stdin = os.Stdin
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Env = append(cmd.Env, "GIT_TERMINAL_PROMPT=1")
cmd.Env = append(cmd.Env, "GIT_ASKPASS=")
cmd.Run()
fmt.Println("Repository cloned successfully")
}
上传本地文件
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func main() {
// 创建OSSClient实例。
// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
client, err := oss.New("xxx", "xxxx", "xxxx")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 填写Bucket名称,例如examplebucket。
bucketName := "oss-cicd"
bucket, err := client.Bucket(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 获取要删除的所有对象列表。
marker := oss.Marker("")
for {
// 列举Bucket中的所有对象。
lsRes, err := bucket.ListObjects(oss.MaxKeys(1000), marker)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
// 遍历对象列表并依次删除每个对象。
for _, object := range lsRes.Objects {
err = bucket.DeleteObject(object.Key)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Println("Object deleted successfully:", object.Key)
}
// 如果Bucket中还有更多的对象需要列举,则更新marker继续列举。
if lsRes.IsTruncated {
marker = oss.Marker(lsRes.NextMarker)
} else {
break
}
}
// 上传本地文件到OSS。
localPath := "D:/impromptu/index.html"
objectName := "index.html"
err = bucket.PutObjectFromFile(objectName, localPath)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Println("Objects uploaded successfully")
}
更多推荐
所有评论(0)