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

news2025/1/16 20:19:56

文章目录

    • 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.coloradmin.cn/o/885075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ceph数据分布

ceph的存储是无主结构,数据分布依赖client来计算,有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设: 第一,pg的数量稳定,可以认为保持不变; 第二, OSD的数量可以增减,OSD的…

.NET6导入导出Excel

一、使用NPOI导出Excel //引入NPOI包 HTML <input type"button" class"layui-btn layui-btn-blue2 layui-btn-sm" id"ExportExcel" onclick"ExportExcel()" value"导出" />JS //导出Excelfunction ExportExcel() {…

判断推理 -- 图形推理 -- 属性规律

中心对称&#xff1a;取一个点&#xff0c;穿过中心能找到另一个对称点。把轴对称 中心对称标出来。五角星不是中心对称。 BD对称轴方向相同&#xff0c;但135自带对称轴&#xff0c;24没带&#xff0c;所以6应该不带对称轴。 百分号不是轴对称。 白色对称轴 平行 或者 夹角…

Python项目实战:创建 + 激活虚拟环境

文章目录 步骤一&#xff1a;新建虚拟环境 激活虚拟环境&#xff08;1.1&#xff09;BUG&#xff1a;激活后显示的Python版本与新建时指定的并不相同。&#xff08;1.2&#xff09;激活成功&#xff1a;在Anaconda软件的环境配置中&#xff0c; 将出现一个py39的虚拟环境。 步…

描述符(__get__和__set__和__delete__)

目录 一、描述符 二、描述符的作用 2.1 何时&#xff0c;何地&#xff0c;会触发这三个方法的执行 三、两种描述符 3.1 数据描述符 3.2 非数据描述符 四、描述符注意事项 五、使用描述符 5.1 牛刀小试 5.2 拔刀相助 5.3 磨刀霍霍 5.4 大刀阔斧 5.4.1 类的装饰器:无…

【校招VIP】常见产品分析之微信

考点介绍&#xff1a; 面试对微信功能的分析和提问是非常常见的&#xff0c;一方面需要明确微信自身产品功能的特点和取舍&#xff0c;另一方面也需要与同类的社交APP进行对比思考分析。 『常见产品分析之微信』相关题目及解析内容可点击文章末尾链接查看&#xff01; 一、考…

《2023年度数据安全与管理状况报告》:勒索威胁激增!

上半年发布的《2023年度数据安全与管理状况报告》揭示出数据安全领域的重要趋势和问题。报告显示&#xff0c;勒索活动日益增多&#xff0c;可大多数企业仍然缺乏必要的网络复原策略和数据安全能力来应对威胁并保持业务连续性。 93%的受访者表示&#xff0c;今年勒索软件攻击的…

C语言实现epoll简洁代码

1.1、函数定义 int epoll_wait(int epfd, struct epoll_event * events, int maxevents, int timeout);作用&#xff1a; 等待监听的所有fd相应事件的产生。 1.2、参数详解&#xff1a; 1) int epfd&#xff1a; epoll_create()函数返回的epoll实例的句柄。 2) struct epol…

Centos7下python3安装gdal库

Background GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。Github地址&#xff1a;https://github.com/OSGeo/gdal每一个地理空间…

SpringBoot概述及项目的创建使用

文章目录 一. Spring Boot概述1. 什么是Spring Boot&#xff1f;2. Spring Boot的优点 二. Spring Boot项目的创建1. 使用IDEA创建1.1. 准备工作1.2. 创建运行Spring Boot项目1.3. 进行Web交互1.4. 目录工程介绍1.5. 项目快速添加依赖1.6. 防止配置文件乱码所需的配置1.7. Spri…

电商订单履约-卖家发货演化史

1 背景 订单的履约之路就是从发货开始&#xff0c;看似简单的发货功能&#xff0c;其背后却藏着许多的小秘密。 发货的业务特点&#xff1a; B端业务&#xff0c;性能要求不高&#xff0c;因为存在批量发货的场景。 发货时间比较分散&#xff0c;所以并发量不大。 业务复杂…

Studio One6.2Pro最新中文版Win+Mac新功能与BUG修复

无论你是第一次接触数字音乐工作站&#xff08;DAW&#xff09;&#xff0c;还是第一次尝试 制作属于自己的音乐&#xff0c;Studio One 都能给你非凡的体验&#xff01;如果您是一名音乐制作人&#xff0c;您是否曾经为了寻找一个合适的音频工作站而苦恼过&#xff1f;Studio …

力扣:64. 最小路径和(Python3)

题目&#xff1a; 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a…

例行性工作

上述方法关机就没了&#xff0c;开机需要再次挂载&#xff0c;我们可以设置开机自动挂载&#xff1a; 方法一&#xff1a; 方法二&#xff1a; 一、单一执行的例行性工作 1、at命令的工作过程 默认有黑名单&#xff0c;黑名单里面没有人&#xff0c;没有allow&#xff0c;表示…

Appium Desktop安装

【提示&#xff1a;官方已不再维护&#xff0c;建议命令行方式安装&#xff0c;但可以学习了解一下】 Appium Desktop是一款适用于Mac、Windows和Linux的应用程序&#xff0c;它以漂亮灵活的UI为您提供Appium自动化服务器的强大功能。它基本上是Appium Server的图形界面。您可…

【数据分享】2006-2021年我国城市级别的各类建设用地面积数据 (工业用地/居住用地等十几个指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标&#xff08;可查看之前的文章获悉&#xff09;。…

[oneAPI] 手写数字识别-卷积

[oneAPI] 手写数字识别 手写数字识别参数与包加载数据模型训练过程结果 oneAPI 比赛&#xff1a;https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0517 Intel DevCloud for oneAPI&#xff1a;https://devcloud.intel.com/oneapi/get_started/aiAnalyticsToolkitSam…

MySQL 中 不等于 会过滤掉 Null 的问题

null值与任意值比较时都为fasle not in 、"!"、"not like"条件过滤都会过滤掉null值的数据 SELECT * from temp; SELECT * from temp where score not in (70); 返回null解决方法: SELECT * from temp where score not in (70) or score is null;SELECT…

python自动化办公的一些小工具,函数组件

上一篇文章写了怎么自动化写一个月报&#xff0c;其中有很多很好用的函数组件&#xff0c;都被我封装为了函数&#xff0c;功能很好用。下面一一介绍&#xff1a; 1.添加汇总函数 输入一个pandas的数据框&#xff0c;就会返回一个加了汇总行的数据框。 def add_summary_row(d…

利用HTTP代理实现请求路由

嘿&#xff0c;大家好&#xff01;作为一名专业的爬虫程序员&#xff0c;我知道构建一个高效的分布式爬虫系统是一个相当复杂的任务。在这个过程中&#xff0c;实现请求的路由是非常关键的。今天&#xff0c;我将和大家分享一些关于如何利用HTTP代理实现请求路由的实用技巧&…