阿里云OSS 对象存储

阿里云对象存储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

环境准备

  • PHP 5.3+,可通过php -v命令查看当前的PHP版本。
  • cURL 扩展,可通过php -m命令查看curl扩展是否已经安装好。

安装

有三种方式安装 SDK

  • composer方式
  • phar方式
  • 源码方式

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文件

  • 修改 OSS_ACCESS_ID, 您从OSS获得的AccessKeyId。
  • 修改 OSS_ACCESS_KEY, 您从OSS获得的AccessKeySecret。
  • 修改 OSS_ENDPOINT, 您选定的OSS数据中心访问域名,如 http://oss-cn-hangzhou.aliyuncs.com
  • 修改 OSS_TEST_BUCKET, 您要用来运行sample使用的bucket,sample程序会在这个bucket中创建一些文件。

注意:不能用生产环境的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查询可以有下面两种方式:

  • 查询Endpoint与区域对应关系详情,可以参考:点击查看
  • 您可以登录 阿里云OSS控制台,进入Bucket概览页,Bucket域名的后缀部分:如bucket-1.oss-cn-hangzhou.aliyuncs.com
    oss-cn-hangzhou.aliyuncs.com
    部分为该Bucket的外网Endpoint。

CNAME

  • 您可以将自己拥有的域名通过CNAME绑定到某个存储空间(Bucket)上,然后通过自己域名访问存储空间内的文件
  • 比如您要将域名new-image.xxxxx.com绑定到深圳区域的名称为image的存储空间上:
  • 您需要到您的域名xxxxx.com托管商那里设定一个新的域名解析,将http://new-image.xxxxx.com
    解析到 http://image.oss-cn-shenzhen.aliyuncs.com
    ,类型为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 */);

其中:

  • setTimeout设置请求超时时间,单位秒,默认是5184000秒, 这里建议 不要设置太小,如果上传文件很大,消耗的时间会比较长
  • setConnectTimeout设置连接超时时间,单位秒,默认是10秒

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

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

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

阿里文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容