IT那些事PHP经验分享程序猿阵线联盟-汇总各类技术干货

阿里云OSS 对象存储

2017-10-14  本文已影响293人  记住你姓李

阿里云对象存储OSS,主要是用于存储静态资源文件,它提供了很多方便的操作图片的方法(缩放旋转水印等),在实现了OSS的基础上,我们也可以通过购买阿里云的CDN服务轻松的实现内容的分发 !

什么是OSS

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它具有与平台无关的RESTful API接口,能够提供99.99999999%的服务持久性...... 阿里云OSS详细了解可以参考这个文档 , 这里主要介绍的是使用方式 !

想要使用OSS 存储第一步,先购买阿里云的OSS存储服务,现在有特惠 0.9元 两年40G,当然如果还有更高需求的话那就自己看情况购买 !

image.png

购买之后点击 新建 Bucket 创建一个 Bucket , 这个就相当于一个示例 , 可以把它理解成一个独立的网盘 , 可以创建多个 ~
下面的管理资源包可以查看你购买的是那种类型的 OSS存储 ~

image.png

根据个人情况选择不同的产品服务 ! 购买地址

基本情况就算是介绍完毕了~ 下面就开始我们新征程 !

OSS 的作用

这个OSS 存储能够帮助我们完成很多新的需求 , 如果你是土豪你可以把它当成一个网盘来使用,如果你是个后端开发者那么恭喜你,你就相当于有了一台静态资源服务器 ! 你可以把图片以及静态页面放到这里 ! 通过OSS获取需要的资源,从而减少服务器的IO操作~,不止如此,一些视频类的网站还可以把需要保持的视频存储到这里,OSS还为我们提供了很多图片处理API,包括防盗链、水印......

这篇教程主要实现的是关于OSS前期配置,如果有其他想法的朋友可以去参考OSS的技术文档 ! 直接参照 SDK 即可操作 (我当时发昏了,看了半天乱七八糟的东西,浪费了很多时间)

安装

SDK下载
GitHub地址:GitHub
版本迭代:Releases
SDK API文档:API Doc

环境准备

安装

有三种方式安装 SDK

composer 方式

  1. 可以通过 composer 安装项目依赖 , 需要在项目的根目录运行 composer require aliyuncs/oss-sdk-php
  2. 或者在 composer.json 中声明对 composer require aliyuncs/oss-sdk-php 的依赖
"require": {
     "aliyuncs/oss-sdk-php": "~2.0"
 }
  1. 通过 composer install 安装依赖 , 安装完成后 , 目录结构应该像下面这样
     ├── app.php
     ├── composer.json
     ├── composer.lock
     └── vendor

其中 app.php使用户的应用程序 , vendor/目录下包含了所依赖的库 , 您需要在app.php中引入依赖:

require_once __DIR__ . '/vendor/autoload.php';

注意 :

如果您的项目中已经引用过autoload.php,则加入了SDK的依赖之后,不需要再引入autoload.php了。

如果使用composer出现网络错误,可以使用composer中国区的镜像源,方法是在命令行执行:composer config -g repositories.packagist composer http://packagist.phpcomposer.com

有没有点蒙蔽 ~~

这些是官网的教程,我是用的就是这种安装方式 ~
不过我使用的是 ThinkPHP 框架,所以我的安装路径做了适当的修改 ~


image.png

当你做完上述的操作后页面上会出现这样一个文件

image.png

打开后是这样的

image.png

里面追加一条(图片里的横线)这个就OK了 , 然后 composer install运行一下就OK~

后面也有两种安装方式 phar方式 和 源码方式

phar方式

使用phar单文件方式时,您需要在发布页面中选择相应的版本并下载打包好的phar文件。

在您的代码中引入这个文件即可:

require_once '/path/to/oss-sdk-php.phar';

源码方式

使用SDK源码时,您需要在发布页面中选择相应版本并下载打包好的zip文件。

解压后的根目录中包含一个autoload.php
文件,您需要在代码中引入这个文件:

require_once '/path/to/oss-sdk/autoload.php';

示例程序

您可以通过以下步骤运行示例程序:

解压下载到的sdk包

修改samples目录中的Config.php文件

注意:不能用生产环境的bucket,以免污染用户数据
到samples目录中执行 php RunAll.php, 也可以单个运行某个Sample文件。

image.png

给大家展示一下config.php打开之后的样子

image.png

OSS_ACCESS_ID 和 OSS_ACCESS_KEY 所在的位置


image.png

OSS_ENDPOINT 所在位置


image.png

OK 走到这一步,我们最艰难的步骤就算是完成了,从这以后我们基本就算是畅通无阻了

image.png

上面这张图片好像没什么太大帮助......

刚刚又翻了下文档,有些概念还是要给大家介绍一下

OSS\OssClient 是SDK的客户端类,使用者可以通过OssClient提供的接口管理存储空间(Bucket)和文件(Object)等。

确定Endpoint

Endpoint是阿里云OSS服务在各个区域的地址,目前支持两种形式

Endpoint 解释
OSS区域地址 OSS区域地址这里
用户自定义域名 用户自定义域名,且CNAME指向OSS域名

关于Endpoint,可以参考:点击查看

OSS区域地址

使用OSS Bucket所在区域地址,Endpoint查询可以有下面两种方式:

CNAME

配置密钥

要接入阿里云OSS,您需要拥有一对有效的 AccessKey(包括AccessKeyId和AccessKeySecret)用来进行签名认证。可以通过如下步骤获得:

在获取到 AccessKeyId和 AccessKeySecret之后,您可以按照下面步骤进行初始化

新建OssClient

使用OSS域名新建OssClient
<?php
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您选定的OSS数据中心访问域名,例如http://oss-cn-hangzhou.aliyuncs.com>";
try {
    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
} catch (OssException $e) {
    print $e->getMessage();
}

OSS目前所有的节点列表见:OSS节点列表

使用自定义域名(CNAME)新建OssClient
<?php
use OSS\OssClient;
use OSS\Core\OssException;
$accessKeyId = "<您从OSS获得的AccessKeyId>";
$accessKeySecret = "<您从OSS获得的AccessKeySecret>";
$endpoint = "<您的绑定在某个Bucket上的自定义域名>";
try {
    $ossClient = new OssClient(
        $accessKeyId, $accessKeySecret, $endpoint, true /* use cname */);
} catch (OssException $e) {
    print $e->getMessage();
}

其中OssClient的构造函数中,第4个参数是含义是是否使用自定义域名,在使用CNAME的时候需要将它置成true。而如果使用的是OSS官方域名,则不需要填此项,或者填为false

配置网络参数

我们可以用ClientConfiguration设置一些网络参数:

<?php
$ossClient->setTimeout(3600 /* seconds */);
$ossClient->setConnectTimeout(10 /* seconds */);

其中:

从这里开始我们就开始我们的 CVR 开发模式~

注 : CVR 开发模式即为 ctrl+C ctrl+V ctrl+R 简称 CVR 开发模式 , 某些编译器中 ctrl+R为运行

相关的 PHP 的代码文档里都有 , 需要使用的时候直接 copy 就可以了,根据需求稍微修改一些参数即可~

阿里文档

上一篇 下一篇

猜你喜欢

热点阅读