OSS详解


原文地址:http://skyail.com/archives/oss%E8%AF%A6%E8%A7%A3

一。什么是 OSS

  OSS的英文全称是Object Storage Service ,对象存储服务,是一种使用 HTTP API 存储和检索非结构化数据和元数据对象的工具。
可以理解成是一个资源托管的地方,这些资源,就是上面提到的对象。网站或者系统运营的过程中,可能会存储大量的图片、视频、音频这样的静态资源。如果是在服务器本机存储这些内容,维护成本高,不利于迁移,而且容灾效果不佳。为了解决这些问题,可以将这些静态资源托管到第三方服务中 ,而这个资源托管的服务就是对象存储服务。
  如果只有存储功能,那么OSS服务就跟硬盘没啥区别了,OSS还要有外部访问的能力,这样才能把静态资源传上去(上行流量),别人才可以把这些静态资源下载下来(下行流量)。
  总结来讲,OSS就是集存储与访问于一身的资源对象托管服务,用于存储静态资源,同时还提供备份、容灾等常见功能

注意点:

  • 对象,指的是非结构化的静态资源,如图片、音频、视频、日志文件等。
  • OSS提供的服务有存储、访问、备份、容灾等。
  • OSS一般指第三方云厂商提供的对象存储服务,当然也可以自己在本地机房搭建自己的对象存储,如使用Minio等搭建分布式文件存储服务,用作对象存储。

二。OSS中的相关术语

1.存储空间(Buket)

  存储空间是用于存储对象的容器,所有的对象都存储在某个存储空间中。

2.对象/文件(Object)

  对象是OSS存储数据的基本单元,也被称为OSS的文件,对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的key来标识。

3.地域(Region)

  地域表示OSS的数据中心所在的物理位置,可以根据费用、请求来源等来选择数据存储的地域。

4.访问域名(Endpoint)

  Endpoint表示对外提供服务的访问域名,OSS以 HTTP restful API 对外提供服务,当访问不同地域的时候,需要不同的域名。通过内网和外网访问同一个地域所需要的域名是不同的。

5.访问密钥(AccessKey)

  简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。OSS通过使用AccessKeyId和AccessKeySecret对称加密的方法来验证某个请求发送者的身份。AccessKeyId用来标识用户,AccessKeySecret用于加密签名字符串和OSS用来验证签名字符串的密钥,AccessKeySecret必须保密。

三。OSS特点、优势

  1. 无需自己购买、维护存储设备,无需自己构建分布式的、异地的、可容灾的存储服务。
  2. OSS使用简单,提供RESTful API,操作简单;而且,一般提供简单易用的文档操作界面。
  3. 动静态数据分离。将静态的资源存储于OSS中,动态的数据存储在本地或者云服务器上,分别加载,提升整体性能,而且从另外一方便来讲,可以腾出更多的本地服务器资源用于计算。
  4. 提供CDN服务。有些OSS厂商提供CDN服务,将静态资源存储到异地,提高系统页面的加载速度。
  5. 支持跨地域同步、异地容灾。
  6. 资源弹性伸缩,拓展更方便。自己搭建存储设备,拓展存储空间会很麻烦,甚至需要部分服务停机,而OSS可以按需购买空间和流量,弹性拓展,对用户无感知。而且不用产提前准备大量的闲置空间,减少资金投入和资源浪费。

四。OSS的缺点与注意点

    对象存储不允许部分修改对象内容。
  如果需要修改数据内容,需要先在文件系统中还原对象,然后对对象进行修改,然后重新上传对象,效率很低。
  所以,OSS不适合存储经常改变的数据,更适合存储静态的资源,如图片、音频、视频、日志、备份文件、镜像文件等。

注意:

  1. 对象存储不允许部分修改内容,包含追加写入。如果需要追加,也需要下载,修改,上传的过程。这一点与HDFS不同,HDFS也不允许部分修改,但是可以追加写入。
  2. OSS不能用作数据库文件的存储,因为OSS不适合存储经常改变的数据,否则效率极低。

五。OSS实现原理

  OSS是一种服务思想,实现方式多种多样。可以通过HDFS、HBase等实现,可以通过minio等实现。主要是在一种或者多种分布式文件系统的基础上,实现OSS基础功能,及其他保障性功能。

六。常见OSS服务

阿里云、七牛云等云服务厂商。

七。OSS的本地化方案

  如果不考虑OSS的大多数保障性功能,只想实现对象存储的核心功能,存储静态的文件数据,可以考虑选择一种分布式文件系统,来实现本地化的对象存储。
这里推荐使用MinIO。

  与其他分布式文件系统相比,MinIO有以下几个特点:

  1. 安装部署、维护简单。
  2. 轻量级。
  3. API简单易用。
  4. 支持中小型文件存储,单对象文件从几KB到最大5T。
  5. 提供简洁的操作界面。

  此外,也可以考虑FastDFS,轻量、社区活跃,相对MinIO,部署有点麻烦。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ali-oss 是阿里云提供的 OSS(Object Storage Service)的 JavaScript SDK,可以在浏览器端和 Node.js 环境下使用。Vue.js 是一个流行的前端框架,常用于开发单页面应用程序。 在 Vue.js 中使用 ali-oss 可以方便地上传和下载文件到阿里云 OSS。下面是 ali-oss 的依赖详解: 1. 安装 ali-oss 在 Vue.js 中使用 ali-oss 需要先安装它。可以使用 npm 安装: ``` npm install ali-oss --save ``` 2. 引入 ali-oss 在 Vue.js 中使用 ali-oss 需要先引入它。可以在 Vue 组件中使用 import 引入: ``` import OSS from 'ali-oss' ``` 3. 创建 OSS 实例 在使用 ali-oss 之前,需要先创建一个 OSS 实例。可以使用以下代码创建: ``` const client = new OSS({ region: '<your region>', accessKeyId: '<your accessKeyId>', accessKeySecret: '<your accessKeySecret>', bucket: '<your bucket>' }) ``` 其中,region 是 OSS 存储所在的区域,accessKeyId 和 accessKeySecret 是阿里云账号的 AccessKey,bucket 是要操作的存储桶名称。 4. 上传文件 使用 ali-oss 可以方便地上传文件到 OSS。可以使用以下代码上传文件: ``` const result = await client.put('object-key', 'local-file'); ``` 其中,object-key 是上传到 OSS 的文件路径,local-file 是本地文件路径。 5. 下载文件 使用 ali-oss 可以方便地下载文件到本地。可以使用以下代码下载文件: ``` const result = await client.get('object-key', 'local-file'); ``` 其中,object-key 是 OSS 中的文件路径,local-file 是本地文件路径。 总的来说,ali-oss 可以方便地在 Vue.js 中上传和下载文件到阿里云 OSS。在使用 ali-oss 时,需要先安装并引入它,然后创建一个 OSS 实例,最后使用 put() 或 get() 方法上传或下载文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值