云计算系列之阿里云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 接口来实现表单上传。

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

  • 14
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值