前言
前两天为了搞这个OSS看了好几遍官方文档,百度了好多文章,就卡在安装和使用,接下来我就把详细方法写下去吧,也好给我留个映象。
安装OSS官方SDK包
安装方法
安装的方法,阿里云官方提供了3种,一种是通过composer方式进行依赖安装,二是phar方式,这个不太常用,三是源码方式,直接下载源码的,我这篇文章就讲一下第一种和第三种,因为第二种我没用过
官方文档:https://help.aliyun.com/document_detail/85580.html?spm=a2c4g.11186623.6.1051.65a8c41dP2K6jV
一,使用composer方式进行安装
如果没有composer的可以百度一下怎么安装,或者直接看下面的。
官方文档是这样提供的:
只需要看第一步就行了,阿里云的官方文档一直被吐槽,从未进行改变。
首先我们需要执行cd 进入你的项目目录,然后再使用下面指令直接安装。
composer require aliyuncs/oss-sdk-php
这时候,有个很多人都会发现的地方,我反正出现报错了,我们首先来看第一个报错:PHP报错
这时候,看见一个很关键的词,那就是:putenv(),这是个PHP函数,大家只需要去php.ini文件到禁用函数里面去把这个函数删除,要不然这个函数被禁用,就无法使用composer进行安装了,删除PHP的禁用函数大家可以去百度。
那么PHP的错误解决了,还有个错误,那就是下图
这个是什么意思呢?是https://packagist.phpcomposer.com/这个镜像站出现了问题了。那么怎么解决呢?下面我来给你们说一下
首先查看自己的composer镜像站
实则是查询composer设置
composer config -gl
设置composer镜像为国内镜像:
composer config -g repo.packagist composer https://packagist.phpcomposer.com
这是最简单的修改镜像站的方式,其他可以百度。
这个修复成功
这样大体的报错就解决了,第一次我安装的时候,文件缺失,后来发现,重启服务器就行了,或者更新PHP
那么安装下来的文件可以看到
.
├── composer.json
├── composer.lock
└── vendor
我们只需要把vendor文件夹里的aliyuncs文件夹里的oss-sdk-php文件夹里的src文件夹拿出来就好了
给大家理个文件夹思路
.
├── oss
├────src
├── index.php
创建一个空的名为OSS的文件夹,然后把src文件夹复制到OSS里面,就行了
还有取出一个叫autoload.php的文件,或直接创建一个,内容如下,放到oss文件夹里面
<?php
function classLoader($class)
{
$path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
$file = __DIR__ . DIRECTORY_SEPARATOR .'src'. DIRECTORY_SEPARATOR . $path . '.php';
if (file_exists($file)) {
require_once $file;
}
}
spl_autoload_register('classLoader');
好的,composer方式就这么多,这些都是我亲身体验。
一,使用SDK的ZIP方式进行安装
去阿里云的OSS的github版本库进行下载zip包GitHub
这个方式就比较简单了,差不多跟composer方式一样
解压->取出src文件夹->创建一个空的名为OSS的文件夹->然后把src文件夹复制到OSS里面
还有取出一个叫autoload.php的文件,或直接创建一个,内容如下,放到oss文件夹里面
<?php
function classLoader($class)
{
$path = str_replace('\\', DIRECTORY_SEPARATOR, $class);
$file = __DIR__ . DIRECTORY_SEPARATOR .'src'. DIRECTORY_SEPARATOR . $path . '.php';
if (file_exists($file)) {
require_once $file;
}
}
spl_autoload_register('classLoader');
这个比较简单,如果还有什么不懂,可以下发评论留言,或访问阿里云官方文档
简单上传文件
下面代码其实是我在网上找的,大家可以随意改
<?php
//引用关键文件
require_once $_SERVER["DOCUMENT_ROOT"]. '/oss/autoload.php';
use OSS\OssClient;
use OSS\Core\OssException;
/**
*$srcPath就是你要上传文件的地址
*$desPath就是你上传到OSS的文件名,或路径+文件名
**/
function storage_save($srcPath, $desPath)
{ //配置
$accessKeyId = '';
//你的阿里的accessid
$accessKeySecret = '';
//你的阿里的accesskey
$endpoint = 'oss-cn-beijing.aliyuncs.com';
// Endpoint以北京为例,其它Region请按实际情况填写。
$bucket = '';
// 存储空间名称
$ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);//引用
$ossClient->uploadFile($bucket, $desPath, $srcPath);//上传
}
echo storage_save('1.jpg','1.jpg');
//开始上传
好了,就这么多吧,回调什么的就可以看官方文档了,还有什么问题可以在评论区留言我哦