【OSS存储】阿里云的oss存储服务 & golang的API调用

这篇具有很好参考价值的文章主要介绍了【OSS存储】阿里云的oss存储服务 & golang的API调用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

OSS是什么?

阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供99.9999999999%(12个9)的数据持久性,99.995%的数据可用性。多种存储类型供选择,全面优化存储成本。
非常适合存储非结构化数据,例如视频、图形、日志、文本文件以及各种App应用、多终端同步软件、网盘下载站的文件等,单个文件的大小从1字节到48.8TB,可以存储的个数无限制。


一、单体应用和微服务下的图片存储

1.单体应用的图片存储

【OSS存储】阿里云的oss存储服务 & golang的API调用

2.微服务下的图片存储

【OSS存储】阿里云的oss存储服务 & golang的API调用

二、阿里云(oss)使用步骤

傻瓜式操作就完事

  • 阿里云官方注册账号
  • 开通oss服务 如果首次使用 - 手动开通,会让你做实名认证
  • 创建存储空间 - bucket
  • 上传、下载、删除文件

三、使用代码控制文件上传

官方文档:https://help.aliyun.com/document_detail/32143.html

官方项目:https://github.com/aliyun/aliyun-oss-go-sdk

1.安装查看SDK版本

运行以下代码查看OSS Go SDK版本:

package main

import (
  "fmt"
  "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
  fmt.Println("OSS Go SDK Version: ", oss.Version)
}

2.上传一个文件

建议使用阿里云子账户只授权oss存储服务来获取key

package main
import (
	"fmt"
	"github.com/aliyun/aliyun-oss-go-sdk/oss"
	"os"
)
func handleError(err error) {
	fmt.Println("Error:", err)
	os.Exit(-1)
}
func main() {
	// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
	endpoint := "https://oss-cn-hangzhou.aliyuncs.com"
	// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
	accessKeyId := "********"
	accessKeySecret := "*************"
	// yourBucketName填写存储空间名称。
	bucketName := "mxshop-nilsfiles"
	// yourObjectName填写Object完整路径,完整路径不包含Bucket名称。
	objectName := "test/first.jpg"
	// yourLocalFileName填写本地文件的完整路径。
	localFileName := "E:\\zhuomian\\ad.png"
	// 创建OSSClient实例。
	client, err := oss.New(endpoint, accessKeyId, accessKeySecret)
	if err != nil {
		handleError(err)
	}
	// 获取存储空间。
	bucket, err := client.Bucket(bucketName)
	if err != nil {
		handleError(err)
	}
	// 上传文件。
	err = bucket.PutObjectFromFile(objectName, localFileName)
	if err != nil {
		handleError(err)
	}
}

四、前端直传oss的流程

官方文档:https://help.aliyun.com/document_detail/112718.html?spm=a2c4g.11186623.0.0.e79f3853WePIx1

使用微服务上传会先想到:用前端把图片上传到后端然后后端再上传到oss上,其实这样做是不对的 带宽会翻倍

【OSS存储】阿里云的oss存储服务 & golang的API调用
正确的流程是前端请求后端的一个key 拿着这个key来直接上传到oss,也就是web端直传oss
【OSS存储】阿里云的oss存储服务 & golang的API调用
oss还有一个回调功能 在上传图片成功后回调gin
【OSS存储】阿里云的oss存储服务 & golang的API调用

五、gin集成前端直传文件

官方文档:https://help.aliyun.com/document_detail/91818.htm?spm=a2c4g.11186623.0.0.16073c6bvKsZaD#concept-mhj-zzt-2fb

客户端进行表单直传到OSS时,会从浏览器向OSS发送带有Origin的请求消息。OSS对带有Origin头的请求消息会进行跨域规则(CORS)的验证。因此需要为Bucket设置跨域规则以支持Post方法。
【OSS存储】阿里云的oss存储服务 & golang的API调用
去官方文档下载客户端和服务端
服务端启动时可以指定ipport
【OSS存储】阿里云的oss存储服务 & golang的API调用
启动后访问服务端
【OSS存储】阿里云的oss存储服务 & golang的API调用
可以发现 文件路径的前缀就是host的值
expire是超时时间 这个超时时间可能与阿里云服务的时间不同步 导致后续报错

修改客户端的ipport
大部分配置都在upload.js里面
这里改为服务端的ipport
【OSS存储】阿里云的oss存储服务 & golang的API调用
打开html
【OSS存储】阿里云的oss存储服务 & golang的API调用
打开Network查看请求过程
【OSS存储】阿里云的oss存储服务 & golang的API调用
如果出现过期的原因的话有可能是因为这个超时时间可能与阿里云服务的时间不同步
在服务端时间设置长一下
【OSS存储】阿里云的oss存储服务 & golang的API调用
如果使用回调逻辑得用公网或者内网穿透 然后把callback的url改成外网能访问的url就可以回调了
网络的调用过程:
【OSS存储】阿里云的oss存储服务 & golang的API调用
这里就不说网络穿透了随便用哪个都行例如:花生壳frp等等文章来源地址https://www.toymoban.com/news/detail-454707.html

到了这里,关于【OSS存储】阿里云的oss存储服务 & golang的API调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 阿里云Oss服务开通 #对象存储 #OSS

    阿里云Oss服务开通 #对象存储 #OSS

    1.点击立即开通 2.勾上协议,立即开通 3.成功,点击‘管理控制台’ 4.创建Bucket 5.勾选相关参数 6.勾选完的参数 7.进入Bucket 8.上传文件-测试 9.选择上传的文件 10.在主页面看到效果,点击详情查看 阿里云OSS服务API使用 常用入口:Access-Key 勾选 1. 访问控制(RAM) 创建用户**** 2. 短

    2024年01月25日
    浏览(38)
  • 阿里云对象存储(OSS)服务

    阿里云对象存储(OSS)服务 引入依赖 这里 aliyun-oss-spring-boot-starter 中默认引入的 aliyun-java-sdk-core 是 3.4.0 版本,但是 aliyun-spring-boot-dependencies 中对 aliyun-java-sdk-core 版本管理为:4.5.0,会导致版本冲突 所以排除 aliyun-oss-spring-boot-starter 默认的 aliyun-java-sdk-core ,单独引入 4.5.0 版

    2024年01月25日
    浏览(38)
  • 阿里云对象存储服务OSS前后联调

    阿里云对象存储服务OSS前后联调

    申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址 全文共计11577字,阅读大概需要3分钟 在分布式集群系统中,前端通过浏览器上传图片给服务器存储时存在分库分表的情况,这就涉及到 文件存储 的情况,在高并发的情况下,考虑到服务器的性能和利用率

    2023年04月09日
    浏览(13)
  • 尚融宝16-集成阿里云对象存储OSS服务

    尚融宝16-集成阿里云对象存储OSS服务

    目录 一、开通“对象存储OSS”服务 1、开通“对象存储OSS”服务 二、控制台使用 1、创建Bucket 2、上传默认头像 三、使用RAM子用户 1、进入子用户管理页面 2、设置权限 四、使用SDK 五、创建测试项目 1、创建Maven项目 2、配置pom 六、测试用例 七、将OSS整合进项目 1、基本配置

    2024年02月13日
    浏览(64)
  • Unity 上传文件到阿里云 对象存储OSS服务器

    Unity 上传文件到阿里云 对象存储OSS服务器

    首先登录阿里云 免费试用–对象存储OSS --点击立即试用,可以有三个月的免费试用 创建Buket 新建AccessKey ,新建完成后,会有一个CSV文件,下载下来,里面有Key ,代码中需要用到 下载SDK 双击打开 sln文件,使用VS打开,右键项目–属性,修改程序集名字,然后点击生成–生成解

    2024年02月13日
    浏览(39)
  • OSS 如何获取阿里云的bucket和endpoint

    OSS 如何获取阿里云的bucket和endpoint

    关于阿里云oss的使用,本篇文章主要讲述如何获取我们需要获取的参数是:bucket和endpoint,这2个参数比较好获得。 实际上,和这2个参数决定了:您上传文件的最终访问地址。这个地址就是:http://./,而其中的和,则可以设置替换成你自己的实际参数。 endpoint实际上就是你申

    2024年02月11日
    浏览(37)
  • 【开发环境】(阿里云分布式文件系统)对象存储OSS 服务配置

    【开发环境】(阿里云分布式文件系统)对象存储OSS 服务配置

    目录 一、开通 “对象存储 OSS” 服务: 二、创建 Bucket 容器: 1.创建一个Bucket: 三、使用 OSS 对象存储: 四、使用 SDK 访问 OSS: 1.安装使用 OSS SDK: 2.SDK 配置和测试:         进入阿里云官网: https://www.aliyun.com/ https://www.aliyun.com/         进入到 OSS 对象存储的管理平台

    2024年02月02日
    浏览(58)
  • 借助OSS搭建在线教育视频课程分享网站-阿里云的课程体验和记录

    借助OSS搭建在线教育视频课程分享网站-阿里云的课程体验和记录

    今天看到阿里云有一个《借助OSS搭建在线教育视频课程分享网站》的课程,记录一下里面的内容。 首先是创建一个资源,大概要等1-2分钟。 1. 创建资源 开始实验之前,您需要先创建相关实验资源。 在体验实验室,单击创建资源。 (可选)在实验室页面左侧导航栏中,单击云

    2024年01月18日
    浏览(9)
  • Linux服务器上传文件到阿里云oss对象存储的两种方法ossutil、curl

    Linux服务器上传文件到阿里云oss对象存储的两种方法ossutil、curl

    ossutil支持在Windows、Linux、macOS等系统中运行,您可以根据实际环境下载和安装合适的版本。 安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。 yum -y install unzip Linux系统一键安装 sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo b

    2024年02月13日
    浏览(43)
  • Golang操作阿里云OSS上传文件

    Golang操作阿里云OSS上传文件

    为什么要使用OSS?应用场景是什么? 最近在开发考试系统,里面需要上传课件,课件包括pdf,map等等各种类型的文件,这些文件不能像图片一样,直接上传到项目目录下面,需要单独存放,阿里云就提供了存储方式,然后OSS是其中的一种,可以用来存储一些文件。 我们需要

    2024年02月02日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包