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');
//開始上傳

好了,就這麼多吧,回調什麼的就可以看官方文檔了,還有什麼問題可以在評論區留言我哦

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章