前言
前兩天爲了搞這個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');
//開始上傳
好了,就這麼多吧,回調什麼的就可以看官方文檔了,還有什麼問題可以在評論區留言我哦