OSS即Object Storage Service(对象存储服务)是提供海量数据存储,安全,低成本,高可靠的云存储服务.本来将为你介绍OSS.
阿里云介绍的关于产品优势:
有配套的SDK,成型的自动化工具,运维操作简化
弹性伸缩的特点保证用户在遇到如高并发,高流量场景时,能够自动帮用户做一些弹性调配
数据迁移便捷,阿里云支持多种工具,也提供在线迁移服务
一. 开通OSS及创建Bucket
存储空间(Bucket)
存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。
二. PHP安装OSS
OSS PHP SDK适用于PHP 5.3以上版本,主要有三种安装方式.首选composer方式
composer方式
1. composer require aliyuncs/oss-sdk-php
2. composer.json文件中添加如下依赖关系
"require": { "php": ">=7.1.3", "ext-json": "*", "aliyuncs/oss-sdk-php": "2.3", }
运行composer install,安装依赖
phar方式
在GitHub中选择相应的版本并下载打包好的phar文件
在代码中引入phar文件
require_once '/path/to/oss-sdk-php.phar';
源码方式
在GitHub中选择相应版本并下载打包好的zip文件
解压后的根目录中包含一个autoload.php文件,在代码中引入此文件:
require_once '/path/to/oss-sdk/autoload.php';
三. 使用自有域名访问
1. 绑定自定义域名
OSS管理控制台=>单击Bucket列表=>单击目标Bucket名称=>传输管理=>域名管理=>单击绑定域名=>在绑定域名面板,输入要绑定的域名
2. 添加CNAME记录
云解析DNS控制台=>解析设置=>添加记录=>单击确定
3. 通过自有域名访问
四. 访问控制
用户签名验证: OSS通过使用AccessKey ID、AccessKey Secret对称加密的方法来验证某个请求的发送者身份
在Header中包含签名: 您可以在HTTP请求中增加 Authorization 的Header来包含签名(Signature)信息,表明这个消息已被授权
在URL中包含签名: 除了使用Authorization Header,您还可以在URL中加入签名信息,以便将该URL转给第三方实现授权访问
Bucket权限控制: 对象存储OSS提供Bucket级别的权限访问控制
场景: 需要对图片和文件进行15分钟过期处理
选型:
用户签名验证: 长度太长,不方便使用,
在Header中包含签名: 安全可靠,调试困难
在URL中包含签名: 暴露AccessKeyId及过期时间.符合应用场景
Bucket权限控制: Bucket目前有三种访问权限:public-read-write(公共读写),public-read(公共读,私有写)和private(私有读写)
在URL中包含签名: vendor/aliyuncs/oss-sdk-php/src/OSS/OssClient.php 下signUrl方法
/** * 支持生成get和put签名, 用户可以生成一个具有一定有效期的 * 签名过的url * * @param string $bucket * @param string $object * @param int $timeout * @param string $method * @param array $options Key-Value数组 * @return string * @throws OssException */ public function signUrl($bucket, $object, $timeout = 60, $method = self::OSS_HTTP_GET, $options = NULL) { $this->precheckCommon($bucket, $object, $options); //method if (self::OSS_HTTP_GET !== $method && self::OSS_HTTP_PUT !== $method) { throw new OssException("method is invalid"); } $options[self::OSS_BUCKET] = $bucket; $options[self::OSS_OBJECT] = $object; $options[self::OSS_METHOD] = $method; if (!isset($options[self::OSS_CONTENT_TYPE])) { $options[self::OSS_CONTENT_TYPE] = ''; } $timeout = time() + $timeout; $options[self::OSS_PREAUTH] = $timeout; $options[self::OSS_DATE] = $timeout; $this->setSignStsInUrl(true); return $this->auth($options); }
五. 注意
OSS 上传限制
通过简单上传、表单上传、追加上传的方式上传文件,单个文件的大小不能超过5 GB;
通过分片上传的方式上传文件,单个文件的大小不能超过48.8 TB
通过控制台更改文件类型(使用CopyObject接口),文件的大小不能超过1 GB。
通过控制台批量删除文件,文件的个数不能超过100个。
如果上传同名文件,已有文件将被覆盖。
文件删除后无法恢复。
图片处理
图片格式只支持JPG、PNG、BMP、GIF、WebP、TIFF
原图大小不能超过20 MB
使用
生命周期规则: 定期将非热门数据转换为低频访问、归档存储或冷归档存储,将不再需要访问的数据删除,让您更高效地管理您存储的数据,节省大量人力及存储成本
图片处理: 对存储在OSS上的图片进行格式转换、缩放、裁剪、旋转、添加水印等各种操作
内容分发网络CDN: 将OSS资源缓存到各区域的边缘节点,利用边缘节点缓存的数据,提升同一个文件,被边缘节点客户大量重复下载的体验
E-MapReduce: 构建于ECS上的大数据处理的系统解决方案,基于开源的Apache Hadoop和Apache Spark,方便您分析和处理自己的数据
媒体处: :将存储于OSS的音视频转码成适合在PC、TV以及移动终端上播放的格式。并基于海量数据深度学习,对音视频的内容、文字、语音、场景多模态分析,实现智能审核、内容理解、智能编辑
OSS提供图形化管理工具ossbrowser、命令行管理工具ossutil、FTP管理工具ossftp等各种类型的管理工具