Introduction to VPS and Web Technology Development

golang oss文件上传(服务端上传文件到oss)

自由vps golang
package oss

import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"github.com/google/wire"
	"github.com/spf13/viper"
	"io"
)

var NewSet = wire.NewSet(NewOSS)

type OSS struct {
	AccessKey  string `yaml:"accessKey" json:"accessKey"`
	Secret     string `yaml:"secret" json:"secret"`
	Domain     string `yaml:"domain" json:"domain"`
	Bucket     string `yaml:"bucket" json:"bucket"`
	AccessName string `yaml:"accessName" json:"acessName"`
}

func NewOSS(viper *viper.Viper) (*OSS, error) {
	var config = new(OSS)
	if err := viper.UnmarshalKey("ossConfig", config); err != nil {
		fmt.Println("读取oss错误", err)
	}

	fmt.Println("oss数据", config)
	return config, nil
}

func (this OSS) Upload(file io.Reader, ossPath string) (string, error) {
	client, err := oss.New(this.Domain, this.AccessKey, this.Secret)
	if err != nil {
		return "", err
	}

	bucket, err := client.Bucket(this.Bucket)
	if err != nil {
		return "", err
	}
	err = bucket.PutObject(ossPath, file)
	if err != nil {
		return "", err
	}
	fmt.Println("处理前", ossPath)
	return this.AccessName + `/` + ossPath, nil
}
使用chatGPT寻求答案
标签: 暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:master@freevpsweb.com

同类推荐
评论列表