php(tp框架)使用阿里云OSS存储

这里只演示thinkphp5.0框架上传文件到阿里云oss对象存储中。其实官方文档说的很明白,但是在实操中我们总是会出现各种细节错误。恨不得有一个从头到尾的新手教程。

官方文档:PHP - 对象存储 OSS - 阿里云

1.前期准备工作

申请注册阿里云账号,开通阿里云oss对象存储我就不说了。然后进入对象存储控制台,创建一个Bucket。我创建的Bucket名称为liuqingwushui。注意,这个昵称后面会用到。然后再创建了一个文件夹dream。创建完之后的样子是这样的:

php(tp框架)使用阿里云OSS存储

 在阿里云oss对象存储控制台阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台,别忘了先申请一个accessKeyId和accessKeySecret。后面会用到。官方建议说为了安全创建用RAM。这里为了测试,我就没用。

php(tp框架)使用阿里云OSS存储

 除此之后还有一个Endpoint地域节点,是在你创建Bucket根据你选择的地域进行分配的。我这里选择的西南成都,所以Endpoint是oss-cn-chengdu.aliyuncs.com。

php(tp框架)使用阿里云OSS存储

 2.整合上传测试

准备工作完毕,注意我标红的参数都是要用的,下面开始进行上传测试。我可以用的thinkphp5.0(后面简称tp5)框架,没有tp5框架的可以看我其他的博客,有提供下载地址。阿里云官方提供了很多种sdk安装初始化的方法。我选择的是最简单直接的源码方式。https://github.com/aliyun/aliyun-oss-php-sdk?spm=a2c4g.11186623.0.0.4dae2ceasCmOmJ

github下载源码,不出意外的话,下载来的是目录结构是这样的:

php(tp框架)使用阿里云OSS存储

 然后将这个文件夹复制到tp5的vendor下,起名aliyun:

php(tp框架)使用阿里云OSS存储

 下面开始使用:

php(tp框架)使用阿里云OSS存储

 Imgupload.php代码:

<?php
namespace app\aliyunoss\controller;
use think\Controller;
use think\Db;  //数据库连接类Db
require_once '/../vendor/aliyun/autoload.php';
use OSS\OssClient;
use OSS\Core\OssException;
class Imgupload extends Controller{
	public function checkToken(){
		// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
		$accessKeyId = "你自己的accessKeyId";
		$accessKeySecret = "你自己的accessKeySecret";
		// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
		$endpoint = "oss-cn-chengdu.aliyuncs.com";
		// 填写Bucket名称,例如examplebucket。
		$bucket= "liuqingwushui";
		// 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
		$object = "dream/exampleobject.txt";
		// <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
		// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
		$filePath = "D:\\examplefile.txt";
		
		try{
		    $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
		
		    $ossClient->uploadFile($bucket, $object, $filePath);
		} catch(OssException $e) {
		    printf(__FUNCTION__ . ": FAILED\n");
		    printf($e->getMessage() . "\n");
		    return;
		}
		print(__FUNCTION__ . "OK" . "\n");
	}
	
}

注意提前在D盘创建一个examplefile.txt文件。

然后我这里访问:http://localhost/tp5/public/aliyunoss/Imgupload/checkToken

就成功,再去你的dream目录下就会看到一个exampleobject.txt文件了。php(tp框架)使用阿里云OSS存储

 

码字不易,转载请注明出处,谢谢

上一篇:对象存储OSS


下一篇:2021-11-15