阿里云OSS

 OSS即Object Storage Service(对象存储服务)是提供海量数据存储,安全,低成本,高可靠的云存储服务.本来将为你介绍OSS.


阿里云介绍的关于产品优势


  • 有配套的SDK,成型的自动化工具,运维操作简化

  • 弹性伸缩的特点保证用户在遇到如高并发,高流量场景时,能够自动帮用户做一些弹性调配

  • 数据迁移便捷,阿里云支持多种工具,也提供在线迁移服务


一. 开通OSS及创建Bucket

1.png

存储空间(Bucket)

    存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。用户可以根据实际需求,创建不同类型的存储空间来存储不同的数据。

2.png



二. 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名称=>传输管理=>域名管理=>单击绑定域名=>在绑定域名面板,输入要绑定的域名

3.png


2. 添加CNAME记录

云解析DNS控制台=>解析设置=>添加记录=>单击确定

4.png

3. 通过自有域名访问

5.png


四. 访问控制

  • 用户签名验证: 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等各种类型的管理工具


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

WX:xcs345525801 QQ:345525801 Tel:19521445850 Email:xcssh868@163.com

Copyright © 2020 许承胜个人博客 版权所有 备案号:皖ICP备18014705号-1