阿里云OSS对象存储的核心概念与购买应用

文章目录

    • 1.OSS对象存储基本介绍
      • 1.1.OSS对象存储概念
      • 1.2.NAS与OSS存储的不同
      • 1.3.OSS的应用场景
      • 1.4.OSS术语对应表
    • 2.购买OSS存储资源包
    • 3.KodCloud云盘接入OSS对象存储
      • 3.1.创建Bucket存储空间
      • 3.2.创建子用户用于管理Bucket
      • 3.3.获取用户的AccessKey
      • 3.3.为用户设置权限
      • 3.4.将Bucket授权给创建的用户管理
      • 3.5.配置KodCloud云盘的后台管理接入OSS
      • 3.6.在KodCloud中上传文件到OSS中
      • 3.7.查看OSS中是否有文件产生
      • 3.8.查看OSS中文件的URL地址
    • 4.忘记子用户的Key怎么办?

1.OSS对象存储基本介绍

OSS对象存储官方文档:https://help.aliyun.com/product/31815.html

1.1.OSS对象存储概念

OSS对象存储服务全称为(Object Storage Service,OSS),是一种海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。

容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。

OSS对象存储提供RESETful API接口,所有的上传和下载文件都是通过API接口完成,只要有网络就可以在任意时间、地点去访问OSS存储中的文件。

OSS对象存储在上传一个大文件时,会对文件进行分片,等所有分片上传到OSS后,再将所有的分片汇聚成一个文件。

1)OSS组件概念

  • 存储类型(Storage Class)
    • OSS提供四种类型的数据存储,分布式标准、低频访问、归档以及冷归档。
    • 标准存储类型提供高持久、高可用、高性能的对象存储服务,可以支撑数据的频繁访问,一般都会选择标准存储。
    • 低频访问存储类型适合长期保存不经常访问的数据,价格较低。
    • 归档存储类型适合需要长期保存的数据。
    • 冷归档存储类型适合需要超长时间存放的数据。
    • 在我们购买OSS资源包时会选择使用哪种类型的存储
  • 存储空间(Bucket)
    • 存储空间相当于资源隔离,用于将不同的应用程序数据存放在不同的存储空间中,一个应用程序一个bucket。
    • 存储空间是用于存储对象的容器,每个对象都必须隶属于某个存储空间,存储空间具备各种配置属性,包括地域、访问权限、存储类型等等,可以根据我们的需求为不同的应用程序创建不同的存储空间。
  • 对象(Object)
    • 对象是OSS存储数据的基本单元,可以理解为存在OSS中的一个文件就是对象。
    • 对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。
    • 对象由存储空间内部唯一的Key来标识。对象元信息是一组键值对,表示了对象的一些属性,例如最后修改时间、大小等信息。
  • ObjectKey
  • 地域(Region)
    • 地域表示OSS所在的物理位置,我们可以将OSS运行在距离用户最近的区域
  • 访问域名(Endpoint)
    • OSS有外网地址和内网地址,当我们在其他地域的ECS想要读取OSS中的数据时,就需要通过OSS的外网地址进行连接,外网地址是一个域名,每个地域的OSS都有单独的访问域名。
    • 通过内网和外网访问同一个地域所需要的域名也是不同的
  • 访问密钥(AccessKey)
    • AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。
    • AccessKey简称AK,指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。
    • OSS通过使用Key+Secret的对称加密方式来验证请求者的身份,验证成功后才可以访问OSS中的资源。
    • AccessKey ID用于标识用户;AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。

2)OSS重要特性

  • 版本控制
    • 针对存储空间级别的数据保护功能。
    • 开启版本控制后,针对数据的覆盖以及删除都会以版本的形式记录下来,当我们误删除文件后,可以在bucket将存储的object恢复任意时刻的版本。
  • Bucket Policy
    • 主要用于为存储空间授权不同用户的访问权限。
    • 例如要对某个账号授权整个存储空间的只读、读写、完全控制等权限。
  • 跨区域复制
    • 可以跨不同地域的OSS数据中心,将对象资源的创建、更新、删除等操作从源存储空间复制到不同区域的目标存储空间,可以作为数据容灾的方案。
  • 数据加密
    • 上传文件时,OSS对收到的文件进行加密,再将得到的加密文件持久化保存;下载文件时,OSS自动将加密文件解密后返回给用户,并在返回的HTTP请求Header中,声明该文件进行了服务器端加密。

1.2.NAS与OSS存储的不同

NAS是文件存储系统,是面向ECS实例的存储服务,类似于传统的NFS服务,需要将NAS挂载到ECS服务器中才可以进行文件的存储,NAS必须要和ECS在同一个地域,否则ECS是无法连接到NAS的,也就是说如果我们要将ECS迁移到其他的地区,NAS也必须要进行迁移,否则将无法使用。

OSS是对象存储,提供RESETful API接口,在OSS中存储的每一个文件都有单独的访问地址,我们只需要在程序中配置OSS的地址以及所使用的Bucket,就可以连接到OSS中,即使将来需要迁移ECS到其他地域,OSS也不需要做任何的操作,只要有网络环境就可以从OSS中获取数据。

另外如果我们的网站有CDN加速器,我们再OSS中缓存的程序图片,也可以直接由CDN请求OSS,不需要经过ECS实例。

NAS主要应用于服务器文件存储、容器存储,用户请求到达WEB程序后,程序会在服务器中挂载的某个路径找到NAS中的数据。

OSS主要应用云端数据处理、图片音视频文件存储、WEB程序动静分离静态资源文件存储,OSS就相当一个云存储,只需要请求OSS的域名就可以获取到想要的文件。

1.3.OSS的应用场景

1)图片和音视频等应用的海量存储

WEB应用程序产生大量的文件(图片、文件、音视频)都可以存储在OSS中,OSS提供的存储是海量的,OSS支持流式写入和文件写入两种方式。

如下图所示:网络摄像机是ECS服务器中运行的程序,用户通过网络摄像机录制的视频通过程序直接存储到OSS对象存储中,再通过OSS自带的媒体程序完成视频的转码,当用户需要播放上传的视频时,如果网站有CDN加速器,请求首先会到达CDN加速器,如果CDN中缓存,那么直接将视频文件返回给用户,如果CDN中没有缓存,那么就由CDN直接从OSS中读取视频文件,然后进行播放,无需再经过ECS服务器。

CDN读取OSS中的文件连接的OSS的外网地址,OSS所在的地域不同外网地址也会有所不同。

OSS支持用户端直接写入和读取。

场景1

2)网页或者移动应用的静态和动态资源分离

大多数的WEB应用程序或者移动APP都会进行动静分离,有的公司是将静态资源直接部署在一台服务器中,提供特定的域名进行访问。

我们也可以直接将静态资源存放在OSS中,当请求时动态数据时经过SLB—>ECS,然后将数据回传给用户,当请求的是静态数据时,请求首先达到CDN加速器,如果CDN加速器中有静态资源的缓存,那么直接回传给用户,如果CDN中不存在静态资源的缓存,CND会直接从OSS中读取静态资源,然后回传给用户,无需再SLB以及ECS中读取静态资源,从某种程度上减少了ECS的流量。

场景2

3)云端数据处理

当数据文件存储在OSS对象存储中后,比如图片以及音视频,可以直接通过其他程序对数据进行二次处理,比如将图片清晰度进行调整、将音视频文件进行转码、压缩等等操作。

OSS就相当于一个云端,其他程序都从这个云端获取数据。

场景3

1.4.OSS术语对应表

英文中文
Bucket存储空间
Object对象或者文件
EndpointOSS 访问域名
Region地域或者数据中心
AccessKeyAccessKeyId和AccessKeySecret的统称,访问密钥
Put Object简单上传
Post Object表单上传
Multipart Upload分片上传
Append Object追加上传
Get Object简单下载
Callback回调
Object Meta文件元信息。用来描述文件信息,例如长度,类型等
Data文件数据
Key文件名
ACL (Access Control List)存储空间或者文件的权限

2.购买OSS存储资源包

在使用OSS之前首先需要购买一个存储资源包,提供存储空间,如果不购买存储资源包直接创建Bucket,存储空间中的数据量就是按量计费,购买了存储包之后,数据空间的大小就是按照资源包进行付费。

OSS存储资源包的空间可以按需再后期镜像扩容。

在控制台中搜索OSS,进入OSS的控制台。

1643000944724

1)在资源包管理中,点击购买资源包。

1643004617313

2)资源包类型选择标准LRS存储包,地域选择中国大陆通用,存储包规格选择40GB,套餐为标准存储包(中国大陆),购买时长选择半年。

1643004781755

3)确认订单信息然后点击去支付。

1643004992674

4)资源包购买完成

1643005044603

3.KodCloud云盘接入OSS对象存储

OSS对接应用系统的大致实现步骤:

  • 1.创建Bucket存储空间
  • 2.创建子用户并授予OSS的管理权限,获取子用户的AccessKey以及AccessSecret
  • 3.将Bucket存储空间授权给子用户进行管理
  • 4.配置应用系统接入OSS

KodCloud在接入OSS时需要填写如下信息,我们需要带着这些信息去创建OSS存储。

1643007494611

3.1.创建Bucket存储空间

1)创建Bucket

点击Bucket列表—>创建Bucket。

1643007755266

2)配置Bucket

Bucket名称为kodcloud-storage—>地域为华北2—>存储类型为标准存储—>关闭同城冗余存储—>不开通版本控制。

读写权限为私有—>数据加密选择无—>不开通实时目录查询—>不开启定时备份—>最后点击确定完成bucket的创建。

其中最为重要的就是读写权限,一定要选择私有,否则对于数据是不安全的,权限为私有会在文件url中带入验证身份的key,公共读为所有人都可以读取bucket中的文件,公共读写最不安全,所有人都可以向bucket中写入数据。

1643008139406

3)查看创建的Bucket

Bucket创建后会自动跳转到当前Bucket的管理页面,在概览中我们可以获取到访问OSS的域名,其中有内网域名和外网域名,并且不同的bucket也有单独的访问域名。

1643008729409

3.2.创建子用户用于管理Bucket

Bucket存储空间已经创建完成,我们不能通过阿里云的管理员账号让程序去连接,因此还需要创建一个子用户,由这个子用户去管理Bucket,为用户分配一些权限,然后将Bucket授权给这个用户,我们就可以通过这个用户的Key和Secret访问Bucket,在Bucket中读取或者写入数据。

1)前往RAM控制台

点击权限管理—>访问控制RAM—>前往控制台。

1643010098764

2)创建用户

点击身份管理中的用户—>创建用户。

1643010293928

填写用户名称—>勾选启用 AccessKey ID 和 AccessKey Secret—>点击确定完成用户创建。

1643010616882

3.3.获取用户的AccessKey

创建完用户后会获取到用户AccessKey,一定要将AccessKey复制保存,否则刷新页面后,无法再次获取Key的信息。

用户登录名称 kodcloud-oss@1069086789271022.onaliyun.com
AccessKey ID:LTAI5tRMCtvCFthMNXKsKLqE
AccessKey Secret:wWrCbFTCuxxxx6RooH8RbXkbfpni

1643010733281

3.3.为用户设置权限

1)再次点击用户列表,找到我们创建的kodcloud-oss用户,点击添加权限。

1643010892122

2)为用户添加一个AliyunOSSFullAccess的权限,这个权限表示对OSS有管理员级别的权限,然后点击确定。

1643011005978

3)在用户详情页面就可以看到我们添加的权限。

1643011237566

3.4.将Bucket授权给创建的用户管理

1)点击权限管理—>Bucket授权策略—>设置。

1643011293821

2)点击新增授权—>授权资源选择整个Bucket—>授权用户选择刚刚创建的子账号—>授权操作为简单设置勾选完全控制—>点击确定完成授权。

1643011478539

3)授权成功。

1643011857075

3.5.配置KodCloud云盘的后台管理接入OSS

进入到Kodclou云盘的后台管理—>找到存储管理—>点击新增—>存储类型为阿里云OSS—>名称填写为阿里云OSS存储—>空间大小为40GB—>Access Key ID填写子用户的Key ID—>Access Key Secret填写子用户的Key Secret—>Bucket填写kodcloud-storage存储空间—>地域节点填写OSS的内网访问域名—>存储目录为/kodbox—>点击保存。

1643012144334

存储添加完成。

1643012521356

3.6.在KodCloud中上传文件到OSS中

进入Kodclou云盘系统—>找到阿里云OSS存储—>点击上传文件。

1643012794244

3.7.查看OSS中是否有文件产生

点击Bucket中的文件管理,可以看到已经创建了一个kodbox的目录。

1643012942953

进入目录后就可以看到用户上传的文件。

1643012997014

3.8.查看OSS中文件的URL地址

在OSS中的每个文件都有独立的访问地址,我们的Bucket权限为私有,在URL中会有Key认证信息,必须通过程序的认证才可以访问到文件中的内容。

点击任意文件即可查看该文件的URL地址。

1643013155808

4.忘记子用户的Key怎么办?

子用户创建完成后Accesskey刷新后会消失,如果后期忘记了怎么办呢?也是有解决方法的。

点击子用户—>在下面有一个创建AccessKey—>会弹出新的AccessKey。

之后可以将忘记的Key删除即可。

image-20220202101415483

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/76476.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP实践:分布式场景下的Session共享解决方案实现

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…

PHP实现在线年龄计算器

1. 输入日期查询年龄 2. php laravel框架实现 代码 /*** 在线年龄计算器*/public function ageDateCal(){// 输入的生日时间$birthday $this->request(birthday);// 当前时间$currentDate date(Y-m-d);// 计算周岁$age date_diff(date_create($birthday), date_create($…

通过OpenTelemetry上报Python-flask应用数据(阿里云)

参考文档 https://help.aliyun.com/document_detail/611711.html?spma2c4g.90499.0.0.34a056ddTu2WWq 先按照 方法一:手动埋点上报Python应用数据 步骤测试上报是否正常。 flas 上报 在 手动埋点上报Python应用数据 的基础上,上报flask应用的数据&#…

LeetCode 160.相交链表

文章目录 💡题目分析💡解题思路🚩步骤一:找尾节点🚩步骤二:判断尾节点是否相等🚩步骤三:找交点🍄思路1🍄思路2 🔔接口源码 题目链接👉…

leetcode 力扣刷题 数组交集(数组、set、map都可实现哈希表)

数组交集 349. 两个数组的交集排序+双指针数组实现哈希表unordered_setunordered_map 350. 两个数组的交集Ⅱ排序 双指针数组实现哈希表unordered_map 349. 两个数组的交集 题目链接:349. 两个数组的交集 题目内容如下,理解题意&#xff1a…

完美解决Github提交PR后报错:File is not gofumpt-ed (gofumpt)

问题阐述 最近在Github上提交PR后,遇到了这么一个问题:golangci-lint运行失败,具体原因是File is not gofumpt-ed (gofumpt)。 名词解释 golangci-lint: golangci-lint 是Go语言社区中常用的代码质量检查工具,它可以…

【C++学习手札】一文带你初识运算符重载

食用指南:本文在有C基础的情况下食用更佳 🍀本文前置知识: C类 ♈️今日夜电波:クリームソーダとシャンデリア—Edo_Ame江户糖 1:20 ━━━━━━️💟──────── 3:40 …

Linux 僵死进程

fork复制进程之后,会产生一个进程叫做子进程,被复制的进程就是父进程。不管父进程先结束,还是子进程先结束,对另外一个进程完全没有影响,父进程和子进程是两个不同的进程。 一、孤儿进程 现在有以下代码:…

第4章:决策树

停止 当前分支样本均为同一类时,变成该类的叶子节点。当前分支类型不同,但是已经没有可以用来分裂的属性时,变成类别样本更多的那个类别的叶子节点。当前分支为空时,变成父节点类别最多的类的叶子节点。 ID3 C4.5 Cart 过拟合 缺…

TCP服务器—实现数据通信

目录 前言 1.接口介绍 2.编写服务器 3.编写客户端 4.编译链接 5.测试 6.总结 前言 今天我们要介绍的是使用TCP协议实现数据通信,相比于之前写的UDP服务器实现数据信,在主体逻辑上并没有差别。客户端向服务器发送信息,服务器接受信息并回…

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-LSTM卷积长短期记忆神经网络的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基…

item_get_sales-获取TB商品销量详情

一、接口参数说明: item_get_sales-获取商品销量详情,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_get_sales 名称类型必须描述keyString是调用key&#xff08…

vim键盘图

国外:http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html,原创,有SVG图,有分步骤的图。 国内翻译:[https://blog.csdn.net/qq_41052753/article/details/101031847 有几个配色,很高清&…

gitee上传一个本地项目到一个空仓库

gitee上传一个本地项目到一个空仓库 引入 比如,你现在本地下载了一个半成品的框架,现在想要把这个本地项目放到gitee的仓库上,这时就需要我们来做到把这个本地项目上传到gitee上了。 具体步骤 1. 登录码云 地址:https://gite…

mysql 索引 区分字符大小写

mysql 建立索引,特别是unique索引,是跟字符集、字符排序规则有关的。 对于utf8mb4_0900_ai_ci来说,0900代表Unicode 9.0的规范,ai表示accent insensitivity,也就是“不区分音调”,而ci表示case insensitiv…

Patch SCN一键解决ORA-600 2662故障---惜分飞

客户强制重启库之后,数据库启动报ORA-600 2037,ORA-745 kcbs_reset_pool/kcbzre1等错误 Wed Aug 09 13:25:38 2023 alter database mount exclusive Successful mount of redo thread 1, with mount id 1672229586 Database mounted in Exclusive Mode Lost write protection d…

【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…

在Orangepi5开发板3588s使用opencv获取摄像头画面

先感谢香橙派群的管理员耐心指导,经过不断的调试修改最后成功通过opencv调用mipi摄像头获取画面 就记录分享一下大概步骤希望大家少踩点坑!!!!!! 我用的固件系统是ubuntu2022.0.4 固件是&#x…

Cenos7 搭建Minio最新版集群部署服务器(一)

------> 道 | 法 | 术 | 器 | 势 <------ 多台服务器间免密登录|免密拷贝 Cenos7 搭建Minio集群部署服务器(一) Cenos7 搭建Minio集群Nginx统一访问入口|反向动态代理(二) Spring Boot 与Minio整合实现文件上传与下载(三) CentOS7的journalctl日志查看方法 …

ES中倒排索引机制

在ES的倒排索引机制中有四个重要的名词&#xff1a;Term、Term Dictionary、Term Index、Posting List。 Term&#xff08;词条&#xff09;&#xff1a;词条是索引里面最小的存储和查询单元。一段文本经过分析器分析以后就会输出一串词条。一般来说英文语境中词条是一个单词&a…