隨著網路技術的不斷發展,雲端儲存服務越來越受到人們的重視。阿里雲物件儲存(OSS)是一個安全、穩定、高擴充性的雲端儲存服務,用於儲存海量資料。本文將介紹如何使用ThinkPHP6框架實現阿里雲OSS檔案上傳下載操作。
一、創建阿里雲OSS Bucket
首先,需要在阿里雲官網上建立一個用於儲存檔案的Bucket。 Bucket相當於雲端的資料夾,用來儲存上傳到阿里雲OSS的檔案。 Bucket的創建方式不在本文的介紹範圍之內,讀者可在阿里雲官網平台查閱相關教學。
建立完畢後,需要取得以下三個參數:
1、AccessKeyId:存取OSS的使用者ID。
2、AccessKeySecret:存取OSS的使用者金鑰。
3、Endpoint:OSS服務的位址。
這些參數將在後續程式碼實作中使用。
二、安裝阿里雲OSS SDK
在使用阿里雲OSS SDK之前,需要先安裝它。可以使用composer進行安裝,指令如下:
composer require aliyuncs/oss-sdk-php
安裝完畢後,需要在config目錄下建立oss.php設定檔。設定檔中需要包含以下三個參數:
'accessKeyId' => '阿里雲AccessKeyId',
'accessSecret' => '阿里雲AccessKeySecret',
'endpoint' = > 'OSS服務位址',
為了方便設定參數的獲取,也可以在.env檔中定義這些參數,在config目錄下建立一個oss.php設定文件,如下所示:
'accessKeyId' => env('OSS_ACCESS_KEY_ID'),
'accessSecret' => env('OSS_ACCESS_KEY_SECRET'),
'endpoint' => env('OSS_ENDPOINT'),
三、檔案上傳操作
在完成了阿里雲OSS SDK的安裝和參數的設定後,就可以開始進行檔案上傳操作了。在controller中建立upload方法,程式碼如下:
##use OSSOssClient;use OSSCoreOssException;
{ $accessKeyId = config('oss.accessKeyId'); $accessKeySecret = config('oss.accessSecret'); $endpoint = config('oss.endpoint'); $bucket = 'your_bucket_name'; // 创建OSSClient实例 try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); } catch (OssException $e) { printf(__FUNCTION__ . "阿里云OSS连接失败:error[%s]
return; } // 获取文件 $file = request()->file('file'); if (!$file) { return "上传文件不能为空"; } // 上传文件 $fileName = $file->getOriginalName(); $filePath = $file->getRealPath(); try { $result = $ossClient->uploadFile($bucket, $fileName, $filePath); } catch (OssException $e) { return "文件上传失败"; } if (isset($result['oss-request-url'])) { return "文件上传成功"; } else { return "文件上传失败"; } }
use OSSCoreOssException;
{ $accessKeyId = config('oss.accessKeyId'); $accessKeySecret = config('oss.accessSecret'); $endpoint = config('oss.endpoint'); $bucket = 'your_bucket_name'; // 创建OSSClient实例 try { $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); } catch (OssException $e) { printf(__FUNCTION__ . "阿里云OSS连接失败:error[%s]
return; } // 获取要下载的文件名称 $object = 'your_object_name'; // 下载文件 $content = ''; try { $content = $ossClient->getObject($bucket, $object); } catch (OssException $e) { return "指定的文件不存在"; } if ($content !== '') { // 文件下载操作 } else { return "文件下载失败"; } }
以上是怎樣使用ThinkPHP6實作OSS檔案上傳和下載操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!