您的位置 首页 golang

golang oss上传文件

1、上传文件 – oss上传Byte数组

代码:

func UploadFile(c *gin.Context) error  {    var(        err error    )    /*        通过form-data上传文件,文件名:file     */    file,err := c.FormFile("file")    if err != nil {        return err    }    fileHandle,err := file.Open()   //打开上传文件    if err != nil {        return err    }    defer fileHandle.Close()    fileByte,err :=  ioutil.ReadAll(fileHandle)  //获取上传文件字节流    if err != nil {        return err    }    url,err := upload_service.Upload(file.Filename,fileByte)    c.JSON(http.StatusOK,gin.H{        "error" : "",        "errno" : "0",        "dataType" : "OBJECT",        "data" : gin.H{            "url" : url,        },    })    return nil}func Upload(fileName string,fileByte []byte)(url string,err error)  {    /*        oss 的相关配置信息     */    bucketName := config.GConfig.GetString("oss.bucket")    endpoint := config.GConfig.GetString("oss.Endpoint")    accessKeyId := config.GConfig.GetString("oss.AccessKeyId")    accessKeySecret := config.GConfig.GetString("oss.AccessKeySecret")    domain := config.GConfig.GetString("oss.domain")    //创建OSSClient实例    client, err := oss.New(endpoint, accessKeyId, accessKeySecret)    if err != nil {        return url,err    }    // 获取存储空间    bucket, err := client.Bucket(bucketName)    if err != nil {        return url,err    }    //上传阿里云路径    folderName := time.Now().Format("2006-01-02")    yunFileTmpPath := filepath.Join("uploads", folderName)  + "/" + fileName  //uploads/2020-06-17/GoLang (1).docx          // 上传Byte数组    err = bucket.PutObject(yunFileTmpPath, bytes.NewReader([]byte(fileByte)))    if err != nil {        return url,err    }    return domain + "/" + yunFileTmpPath ,nil}

注:

1、先用ioutil.ReadAll获取文件的字节数2、上传阿里云的oss地址不能有'/'

文章来源:智云一二三科技

文章标题:golang oss上传文件

文章地址:https://www.zhihuclub.com/7212.shtml

关于作者: 智云科技

热门文章

网站地图