PHP使用阿里云的对象储存OSS的官方SDK进行简单的上传

前言

前两天为了搞这个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');
//开始上传

好了,就这么多吧,回调什么的就可以看官方文档了,还有什么问题可以在评论区留言我哦

发布了30 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41716624/article/details/100801403