云存儲(chǔ)應(yīng)用插件,支持在 webman-admin 中設(shè)置云存儲(chǔ)配置。用于向用戶提供文件上傳功能支持。
云端 | 多文件上傳 | Base64圖片上傳 | 服務(wù)器文件上傳 |
---|---|---|---|
?? 私有云 | ? | -- | ? |
?? 阿里云 | ? | ? | ? |
?? 騰訊云 | ? | ? | ? |
?? 七牛云 | ? | ? | ? |
?? 亞馬遜(S3) | ? | ? | ? |
請(qǐng)?jiān)?webman-admin 的插件市場安裝
使用場景: webman-admin 默認(rèn)文件、附件、圖片上傳等都是默認(rèn)上傳到webman-admin項(xiàng)目目錄下即本地服務(wù)器,訪問文件使用相對(duì)路徑拼接訪問。如果你不想全部存在在本地,而是把上傳文件統(tǒng)一存儲(chǔ)在云端對(duì)象存儲(chǔ),如阿里云OSS等對(duì)象存儲(chǔ)
注意:需要webman-admin官方管理后臺(tái)大于版本
>= v0.6.32
在 plugin/admin/config/middleware.php
中添加全局中間件如下
// 全局中間件
return [
'' => [
// ... 這里省略其它中間件
\plugin\storage\app\middleware\StorageMiddleware::class
]
];
一鍵替換webman-admin所有文件上傳就這么簡單,配置一個(gè)中間件就可以啦!
使用場景: 自定義接口上傳文件直接調(diào)用即可,如:給APP寫一個(gè)api接口
use plugin\storage\api\Storage;
/** 默認(rèn)上傳 */
Storage::uploadFile();
/** 指定上傳(阿里云) */
Storage::disk(Storage::MODE_OSS)->uploadFile();
上傳成功信息
[
{
"key": "webman",
"origin_name": "常用編程軟件和工具.xlsx",
"save_name": "03414c9bdaf7a38148742c87b96b8167.xlsx",
"save_path": "runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx",
"save_path": "/var/www/webman-admin/public/storage/03414c9bdaf7a38148742c87b96b8167.xlsx",
"url": "http://www.tinywan.com/upload/e0a1cd61ae1f07c3e692e82f465204256fb5e390.png",
"uniqid ": "03414c9bdaf7a38148742c87b96b8167",
"size": 15050,
"mime_type": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"extension": "xlsx"
}
...
]
字段描述
字段 | 描述 | 示例值 |
---|---|---|
key | 上傳文件key | webman |
origin_name | 原始文件名 | 常用編程軟件和工具.xlsx |
save_name | 保存文件名 | 03414c9bdaf7a38148742c87b96b8167.xlsx |
save_path | 文件保存路徑(絕對(duì)) | /var/www/webman-admin/runtime/storage/03414c9bdaf7a38148742c87b96b8167.xlsx |
url | url訪問路徑 | http://ai.tinywan.com/upload/03414c9bdaf7a38148742c87b96b8167.xlsx |
unique_id | uniqid | 03414c9bdaf7a38148742c87b96b8167 |
size | 文件大小 | 15050(字節(jié)) |
mime_type | 文件類型 | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
extension | 文件擴(kuò)展名 | xlsx |
使用場景: 前端直接截圖(頭像、Canvas等)一個(gè)Base64數(shù)據(jù)流的圖片直接上傳到云端
使用案例
請(qǐng)求參數(shù)
{
"extension": "png",
"base64": "data:image/jpeg;base64,/9j/4AAQSkxxxxxxxxxxxxZJRgABvtyQBIr/MPTPTP/2Q=="
}
請(qǐng)求案例(阿里云)
use Tinywan\Storage\Storage;
public function upload(Request $request)
{
$base64 = $request->post('base64');
$response = Storage::disk(Storage::MODE_OSS, false)->uploadBase64($base64,'png');
var_dump($response);
}
響應(yīng)參數(shù)
{
"origin_name": "/var/www/webman-admin/runtime/storage/webman.png",
"save_path": "storage/6edf04d7c26f020cf5e46e6457620220402213414.png",
"url": "http://webman.oss.tinywan.com/storage/6ed9ffd54d0df57620220402213414.png",
"unique_id": "6edf04d7c26f020cf5e46e6403213414",
"size": 3505604,
"extension": "png"
}
使用場景: 服務(wù)端導(dǎo)出文件需要上傳到云端存儲(chǔ),或者零時(shí)下載文件存儲(chǔ)。
使用案例
請(qǐng)求案例(阿里云)
use Tinywan\Storage\Storage;
$serverFile = runtime_path() . DIRECTORY_SEPARATOR . 'storage/webman.png';
$res = Storage::disk(Storage::MODE_OSS, false)->uploadServerFile($serverFile);
響應(yīng)參數(shù)
{
"origin_name": "/var/www/webman-admin/runtime/storage/webman.png",
"save_path": "storage/6edf04d7c26f020cf5e46e6457620220402213414.png",
"url": "http://webman.oss.tinywan.com/storage/6ed9ffd54d0df57620220402213414.png",
"unique_id": "6edf04d7c26f020cf5e46e6403213414",
"size": 3505604,
"extension": "png"
}
- 阿里云對(duì)象存儲(chǔ)
composer require aliyuncs/oss-sdk-php
- 騰訊云對(duì)象存儲(chǔ)
composer require qcloud/cos-sdk-v5
- 七牛云云對(duì)象存儲(chǔ)
composer require qiniu/php-sdk
- 亞馬遜(S3)對(duì)象存儲(chǔ)**
composer require league/flysystem-aws-s3-v3
QQ:756684177
郵箱:756684177@qq.com
微信:Tinywan8