云计算系列之阿里云OSS云存储实战解析

内容导读

  • 阿里云对象存储OSS简介
  • 阿里云OSS基本操作
  • 阿里云OSS的API与SDK介绍
  • 阿里云OSS静态网站托管
  • 云存储OSS案例解析

一、阿里云对象存储OSS简介

1、什么是阿里云OSS

阿里云对象存储服务(Object Storage Service),简称 OSS,是阿里云提供的海量、安全、低成本、高可靠的云存储服务。其数据设计持久性不低于 99.9999999999%(12 个 9),服务设计可用性(或业务连续性)不低于 99.995%。

OSS 具有与平台无关的 RESTful API 接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

可以使用阿里云提供的 API、SDK 接口或者 OSS 迁移工具轻松地将海量数据移入或移出阿里云 OSS。

数据存储到阿里云 OSS 以后,可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)和归档存储(Archive)作为不经常访问数据的存储方式。

2、相关概念

存储类型(Storage Class)

OSS 提供标准、低频访问、归档三种存储类型,全面覆盖从热到冷的各种数据存储场景。

存储空间(Bucket)

存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。

对象/文件(Object)

对象是 OSS 存储数据的基本单元,也被称为 OSS 的文件。对象由元信息(Object Meta)、用户数据(Data)和文件名(Key)组成。

地域(Region)

地域表示 OSS 的数据中心所在物理位置。您可以根据费用、请求来源等选择合适的地域创建 Bucket。

访问域名(Endpoint)

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

访问密钥(AccessKey)

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

3、相关服务

图片处理(IMG):对存储在 OSS 上的图片进行格式转换、缩放、裁剪、旋转、添加水印等各种操作。

云服务器(ECS):提供简单高效、处理能力可弹性伸缩的云端计算服务。

内容分发网络(CDN):将 OSS 资源缓存到各区域的边缘节点,利用边缘节点缓存的数据,提升同一个文件,被边缘节点客户大量重复下载的体验。

E-MapReduce:构建于 ECS 上的大数据处理的系统解决方案,基于开源的 Apache Hadoop 和 Apache Spark,方便您分析和处理自己的数据。

媒体处理:将存储于 OSS 的音视频转码成适合在 PC、TV 以及移动终端上播放的格式。并基于海量数据深度学习,对音视频的内容、文字、语音、场景多模态分析,实现智能审核、内容理解、智能编辑。

4、管理OSS

通过 OSS 控制台管理 OSS

OSS 提供了 Web 服务页面,您可以登录 OSS 管理控制台,管理您的 OSS。

通过 API 或 SDK 管理 OSS

OSS 提供 RESTful API 和各种语言的 SDK 开发包,方便您快速进行二次开发。

通过工具管理 OSS

OSS 提供各类型的管理工具,您可以通过工具管理您的 OSS。

二、阿里云OSS基本操作

1、OSS基本操作的流程

2、开通OSS服务

(1)前提条件

  在使用阿里云 OSS 服务之前,请确保您已经注册了阿里云账号并完成实名认证。如果您还没有创建阿里云账号,系统会在您开通 OSS 时提示您注册账号。

(2)操作步骤

登录阿里云官网。

将鼠标移至产品,单击对象存储 OSS,打开 OSS 产品详情页面。

在 OSS 产品详情页,单击立即开通。

开通服务后,在 OSS 产品详情页单击管理控制台直接进入 OSS 管理控制台界面。

也可以单击位于官网首页右上方菜单栏的控制台,进入阿里云管理控制台首页,然后单击左侧的对象存储 OSS 菜单进入 OSS 管理控制台界面。

3、创建存储空间

开通阿里云OSS服务后,我们首先要创建存储空间(Bucket)来存储文件。

(1)三种方式创建存储空间

使用OSS管理控制台(进入管理控制台按提示完成操作)

使用命令行工具ossutil

使用API/SDK

(2)OSS提供多种语言的API/SDK包,方便您快速进行二次开发

API接口:PutBucket

Java SDK:创建存储空间

Python SDK:创建存储空间

PHP SDK:创建存储空间

Go SDK:创建存储空间

C SDK:创建存储空间

三、阿里云OSS的API与SDK介绍

1、OSS API参考

主要介绍接口的请求语法、相关参数含义以及请求和返回示例

关于Service操作之GetService:

对服务地址做Get请求可以返回请求者拥有的所有存储空间(Bucket),其中正斜线(/)表示根目录。

请求语法

GET / HTTP/1.1

Host: oss.example.com

Date: GMT Date

Authorization: SignatureValue

请求示例:

GET / HTTP/1.1

Date: Thu, 15 May 2014 11:18:32 GMT

Host: oss-cn-hangzhou.aliyuncs.com

Authorization: OSS nxj7dtlhcyl5hpvnhi:COS3OQkfQPnKmYZTEHYv2******

关于PutBucket:

PutBucket接口用于创建存储空间(Bucket)。

此接口不支持匿名访问。

同一阿里云账号在同一地域(Region)内最多可创建100个Bucket。

每个地域都有对应的访问域名(Endpoint)。

请求语法

PUT / HTTP/1.1

Host: BucketName.oss-cn-hangzhou.aliyuncs.com

Date: GMT Date

x-oss-acl: Permission

Authorization: SignatureValue

<?xml version="1.0" encoding="UTF-8"?>

<CreateBucketConfiguration>

    <StorageClass>Standard</StorageClass>

</CreateBucketConfiguration>

关于Object操作之PutObject接口:

用于上传文件(Object)。

请求语法:

PUT /ObjectName HTTP/1.1

Content-Length:ContentLength

Content-Type: ContentType

Host: BucketName.oss-cn-hangzhou.aliyuncs.com

Date: GMT Date

Authorization: SignatureValue

简单上传的请求示例:

PUT /test.txt HTTP/1.1

Host: test.oss-cn-zhangjiakou.aliyuncs.com

User-Agent: aliyun-sdk-python/2.6.0(Windows/7/AMD64;3.7.0)

Accept: */*

Connection: keep-alive

Content-Type: text/plain

date: Tue, 04 Dec 2018 15:56:37 GMT

authorization: OSS qn6qrrqxo2oawuk53otfjbyc:kZoYNv66bsmc10+dcGKw5x2P****

Transfer-Encoding: chunked

关于LiveChannel:

可以使用RTMP协议将音视频数据上传到OSS,转储为指定格式的音视频文件。上传前需要先创建一个LiveChannel,以获取对应的推流地址。

通过RTMP协议上传音视频数据目前有以下限制:

只能使用RTMP推流的方式,不支持拉流。

必须包含视频流,且视频流格式为H264。

音频流是可选的,并且只支持AAC格式,其他格式的音频流会被丢弃。

转储只支持HLS协议。

一个LiveChannel同时只能有一个客户端向其推流。

2、OSS SDK参考

使用OSS SDK之前,需要:

了解并开通阿里云OSS服务、创建AccessKey

四、阿里云OSS静态网站托管

1、静态网站托管说明

(1)通过OSS API的PutBucketWebsite接口将自己的存储空间配置成静态网站托管模式,并通过存储空间绑定的自定义域名访问该静态网站。

静态网站

是指所有的网页都由静态内容构成,包括客户端执行的脚本,例如JavaScript。OSS不支持涉及到需要服   务器端处理的内容,例如PHP、JSP、ASP.NET等。

(2)细节分析

将一个Bucket设置成静态网站托管模式时:

索引页面是必须指定的,错误页面是可选的。

若未开通子目录首页,需保证根目录下有默认首页和默认404页对应的文件,且文件可读。

若开通子目录首页,需保证根目录和子目录下有默认首页文件,根目录下有默认404页文件,且文件可读。

说明:默认首页仅可以设置一个,若需要使用子目录首页,则子目录下的首页文件需要与根目录下的首页文件名称相同,但内容可以不同。

将一个 Bucket 设置成静态网站托管模式后:

对静态网站域名的匿名访问,OSS将返回索引页面;对静态网站根域名的签名访问,OSS 将返回GetBucket结果。

访问不存在的Object时,OSS会返回给用户设定的默认404页对应的文件,对此返回的流量和请求将会计费。

2、托管操作方式

五、云存储OSS案例解析

1、Web端上传数据至OSS

每个 OSS 的用户都会用到上传服务。Web 端常见的上传方法是用户在浏览器或 APP 端上传文件到应用服务器,应用服务器再把文件上传到 OSS。具体流程如下图所示。

与数据直传到 OSS 相比,以上方法有三个缺点:

上传慢:用户数据需先上传到应用服务器,之后再上传到OSS。

扩展性差:如果后续用户多了,应用服务器会成为瓶颈。

费用高:需要准备多台应用服务器。由于OSS上传流量是免费的,如果数据直传到OSS,不通过应用服务器,那么将能省下几台应用服务器。

2、Web端直传数据到OSS

目前通过 Web 前端技术上传文件到 OSS,有三种技术方案:

(1) 利用OSS Browser.js SDK 将文件上传到 OSS

该方案通过OSS Browser.js SDK直传数据到 OSS。在网络条件不好的状况下可以通过断点续传的方式上传大文件。

(2) 使用表单上传方式,将文件上传到 OSS

利用 OSS 提供的 PostObject 接口,使用表单上传方式将文件上传到 OSS。该方案兼容大部分浏览器,但在网络状况不好的时候,如果单个文件上传失败,只能重试上传。

(3) 通过小程序上传文件到 OSS

通过小程序,如微信小程序、支付宝小程序等,利用 OSS 提供的 PostObject 接口来实现表单上传。

更多精彩内容请关注本站!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值