0


PHP-阿里云oss使用

为什么要使用第三方存储?

1)静态文件会占用大量带宽;
2)加载速度
3)存储空间

第三方存储有哪些?

1)阿里云oss
2)七牛云
3)又拍云
等等
阿里云OSS的介绍https://www.aliyun.com/product/oss/

阿里云oss的使用

阿里云oss使用步骤:
1.申请key和secret(把key和secret保存好,项目中配置使用);
2.新建Bucket
3.查看文档(对象存储oss->开发者指南->sdk参考->PHPsdk)

composer require aliyuncs/oss-sdk-php

4.推荐工具:常用工具->ossbrowser

准备工作
1.申请key和secret
打开阿里云官网,登录账号之后,在控制台左侧选择对象存储oss,进入之后点击右侧的AccessKey如下图

在这里插入图片描述

2.新建Bucket
在这里插入图片描述

下载sdk

composer require aliyuncs/oss-sdk-php

查看endpoint地址,在找不到情况下选择新建-》地域便可以看到endpoint地址

在这里插入图片描述
在这里插入图片描述

阿里云oss配置参数

"OSS_ACCESS_ID"=>'',//创建accesskey的时候保存的"OSS_ACCESS_KEY"=>'',//创建accesskey的时候保存的"OSS_ENDPOINT"=>'',//后台控制面板打开对应的bucket查看,会显示对应的endpoint地址"OSS_TEST_BUCKET"=>''//bucket名称

Thinkphp5框架中使用oss

先将文件保存在本地
后将文件上传至oss

1、下载sdk后先看案例
在这里插入图片描述

案例Bucket.php

1、引入require_once__DIR__.'/Common.php';2、生成实例Common.php
读取密钥配置
constendpoint=Config::OSS_ENDPOINT;constaccessKeyId=Config::OSS_ACCESS_ID;constaccessKeySecret=Config::OSS_ACCESS_KEY;constbucket=Config::OSS_TEST_BUCKET;
实例oss客户端
newOssClient3、根据OssClient实例进行bucket创建、删除操作等一系列操作

2、仿照Bucket.php案例实现
D:\phpstudy_pro\WWW\tp5\extend\Aliyun\Oss.php

<?phpnamespaceAliyun;useOSS\OssClient;useOSS\Core\OssException;/**
 * Class Common
 *
 * 示例程序【Samples/*.php】 的Common类,用于获取OssClient实例和其他公用方法
 */classOss{public$client;private$bucket;publicfunction__construct(){$this->getOssClient();$this->bucket=config('aliyun.OSS_TEST_BUCKET');}/**
     * 根据Config配置,得到一个OssClient实例
     *
     * @return OssClient 一个OssClient实例
     */publicfunctiongetOssClient(){try{if(!isset($this->client)){$this->client=$ossClient=newOssClient(config('aliyun.OSS_ACCESS_ID'),config('aliyun.OSS_ACCESS_KEY'),config('aliyun.OSS_ENDPOINT'),false);}}catch(OssException$e){printf(__FUNCTION__."creating OssClient instance: FAILED\n");printf($e->getMessage()."\n");}}/**
     * 上传文件到oss并删除本地文件
     * @param string $path 文件路径
     * @return bollear      是否上传
     */publicfunctionupload($path){#云上的文件默认是从云上的根路径开始的,因此需要去除./// 先统一去除左侧的.或者/ 再添加./$oss_path=ltrim($path,'./');$path='./'.$oss_path;if(file_exists($path)){// 上传到oss$this->client->uploadFile($this->bucket,$oss_path,$path);// 如需上传到oss后 自动删除本地的文件 则删除下面的注释// unlink($path);returntrue;}returnfalse;}/**
     * 删除oss上指定文件
     * @param string $object 文件路径 例如删除 /Public/README.md文件  传Public/README.md 即可
     */publicfunctiondelete_object($object){#云上的文件默认是从云上的根路径开始的,因此需要去除./$object=ltrim($object,'./');$res=$this->client->deleteObject($this->bucket,$object);return$res;}}

密钥配置
D:\phpstudy_pro\WWW\tp5\application\extra\aliyun.php

<?phpreturn["OSS_ACCESS_ID"=>'xxxx',"OSS_ACCESS_KEY"=>'xxxxx',"OSS_ENDPOINT"=>'oss-cn-shenzhen.aliyuncs.com',"OSS_TEST_BUCKET"=>'liuyuanshan'];

3、使用

useAliyun\Oss;classIndexextendsController{publicfunctionoss(){$oss=newOss();$oss->upload('./test/test.xlsx');//$res = $oss->delete_object('test/test.xlsx');}}

知识拓展

tp5的application/extra扩展配置的详细使⽤⽅式
ThinkPHP5 版本开始增加了扩展配置⽬录的概念,在应⽤配置⽬录或者模块配置⽬录下⾯增加extra⼦⽬录,下⾯的配置⽂件都会⾃动加
载,⽆需任何配置,这极⼤的⽅便了我们进⾏扩展配置。
例如:我们再
⽬录下⾯创建⼀个aliyun.php⽂件,内容如下:
D:\phpstudy_pro\WWW\tp5\application\extra\aliyun.php

<?phpreturn["OSS_ACCESS_ID"=>'xxxx',"OSS_ACCESS_KEY"=>'xxxxxx',"OSS_ENDPOINT"=>'doneke.oss-cn-shenzhen.aliyuncs.com',"OSS_TEST_BUCKET"=>'doneke'];

获取扩展配置信息aliyun是读取aliyun.php文件OSS_ACCESS_ID是常量

config('aliyun.OSS_ACCESS_ID')
标签: php 阿里云 安全

本文转载自: https://blog.csdn.net/weixin_39218464/article/details/125019683
版权归原作者 刘远山 所有, 如有侵权,请联系我们删除。

“PHP-阿里云oss使用”的评论:

还没有评论