当前位置:   article > 正文

Golang 上传静态文件到阿里云OSS_怎么向阿里云上传文件go

怎么向阿里云上传文件go

GOlang上传静态文件到阿里云OSS

参考文档

阿里云官方API

https://help.aliyun.com/document_detail/88601.html
  • 1

已服务运行

https://blog.csdn.net/daily886/article/details/103366145
  • 1

参考

https://blog.csdn.net/qq_36034503/article/details/123696273
  • 1

jenkins

https://blog.csdn.net/xujiamin0022016/article/details/108859168
  • 1

架构图

image-20230601093926942

拉取代码

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")
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

image-20230602112037246

上传本地文件

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")
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

在这里插入图片描述

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号