mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
重新实现filesystem模块,升级到最新版本;
This commit is contained in:
@@ -69,6 +69,7 @@ class Ajax extends AdminController
|
||||
|
||||
$result = $upload_service->save($data['file']);
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<label class="layui-form-label required">数据中心</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_endpoint" class="layui-input" lay-verify="required" lay-reqtext="请输入数据中心" placeholder="请输入数据中心" value="{:sysconfig('upload','alioss_endpoint')}">
|
||||
<tip>例子:https://oss-cn-shenzhen.aliyuncs.com</tip>
|
||||
<tip>endpoint,例子:oss-cn-shenzhen.aliyuncs.com</tip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<label class="layui-form-label required">访问域名</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="alioss_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','alioss_domain')}">
|
||||
<tip>例子:ulthon-admin.oss-cn-shenzhen.aliyuncs.com</tip>
|
||||
<tip>例子:http://ulthon-admin.oss-cn-shenzhen.aliyuncs.com</tip>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<label class="layui-form-label required">存储桶名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="txcos_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶名称" placeholder="请输入存储桶名称" value="{:sysconfig('upload','txcos_bucket')}">
|
||||
<tip>例子:ulthon-admin-1251997243</tip>
|
||||
<tip>例子:ulthon-admin ,注意不需要拼接appid等数字</tip>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item show-type-item txcos">
|
||||
|
||||
@@ -15,4 +15,6 @@ $middleware_common = include_once __DIR__ . '/common/app/middleware.php';
|
||||
|
||||
$middleware = array_merge($middleware_default, $middleware_common);
|
||||
|
||||
return ksort($middleware);
|
||||
ksort($middleware);
|
||||
|
||||
return $middleware;
|
||||
|
||||
@@ -11,4 +11,6 @@ $service_common = include_once __DIR__ . '/common/app/service.php';
|
||||
|
||||
$service = array_merge($service_default, $service_common);
|
||||
|
||||
return ksort($service);
|
||||
ksort($service);
|
||||
|
||||
return $service;
|
||||
|
||||
@@ -24,14 +24,14 @@
|
||||
"topthink/think-multi-app": "^1.0",
|
||||
"topthink/think-view": "^2.0",
|
||||
"topthink/think-captcha": "^3.0",
|
||||
"topthink/think-filesystem": "^2.0",
|
||||
"topthink/think-migration": "^3.0",
|
||||
"guzzlehttp/guzzle": "^7.4",
|
||||
"phpoffice/phpspreadsheet": "^1.22",
|
||||
"doctrine/annotations": "^1.13",
|
||||
"overtrue/flysystem-qiniu": "^2.0",
|
||||
"overtrue/flysystem-cos": "^4.0",
|
||||
"iidestiny/flysystem-oss": "^3.0"
|
||||
"league/flysystem": "^3.0",
|
||||
"overtrue/flysystem-qiniu": "^3.0",
|
||||
"overtrue/flysystem-cos": "^5.0",
|
||||
"iidestiny/flysystem-oss": "^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"symfony/var-dumper": "^4.2"
|
||||
|
||||
311
composer.lock
generated
311
composer.lock
generated
@@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "ca3fcd696a06edb2905bbd88a2d905d0",
|
||||
"content-hash": "07cbcad2506a74dbd4130f9597859332",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aliyuncs/oss-sdk-php",
|
||||
@@ -640,16 +640,16 @@
|
||||
},
|
||||
{
|
||||
"name": "iidestiny/flysystem-oss",
|
||||
"version": "3.1",
|
||||
"version": "4.3",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/iiDestiny/flysystem-oss.git",
|
||||
"reference": "9fff308b9bcb47f7d5021c0741a8fbcf463cef9e"
|
||||
"reference": "15447c3367cb8a36a64bc2881c13ee2b6ae3fa26"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/iiDestiny/flysystem-oss/zipball/9fff308b9bcb47f7d5021c0741a8fbcf463cef9e",
|
||||
"reference": "9fff308b9bcb47f7d5021c0741a8fbcf463cef9e",
|
||||
"url": "https://api.github.com/repos/iiDestiny/flysystem-oss/zipball/15447c3367cb8a36a64bc2881c13ee2b6ae3fa26",
|
||||
"reference": "15447c3367cb8a36a64bc2881c13ee2b6ae3fa26",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -657,12 +657,12 @@
|
||||
"ext-curl": "*",
|
||||
"ext-json": "*",
|
||||
"ext-openssl": "*",
|
||||
"league/flysystem": "^2.0",
|
||||
"php": ">=7.2"
|
||||
"league/flysystem": "^3.0",
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.2",
|
||||
"phpunit/phpunit": "^6.5",
|
||||
"mockery/mockery": "^1.5",
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"symfony/var-dumper": "^3.4"
|
||||
},
|
||||
"type": "library",
|
||||
@@ -690,45 +690,53 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/iiDestiny/flysystem-oss/issues",
|
||||
"source": "https://github.com/iiDestiny/flysystem-oss/tree/3.1"
|
||||
"source": "https://github.com/iiDestiny/flysystem-oss/tree/4.3"
|
||||
},
|
||||
"time": "2022-04-19T05:39:46+00:00"
|
||||
"time": "2023-09-09T11:59:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem",
|
||||
"version": "2.5.0",
|
||||
"version": "3.16.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem.git",
|
||||
"reference": "8aaffb653c5777781b0f7f69a5d937baf7ab6cdb"
|
||||
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/8aaffb653c5777781b0f7f69a5d937baf7ab6cdb",
|
||||
"reference": "8aaffb653c5777781b0f7f69a5d937baf7ab6cdb",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem/zipball/4fdf372ca6b63c6e281b1c01a624349ccb757729",
|
||||
"reference": "4fdf372ca6b63c6e281b1c01a624349ccb757729",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"league/flysystem-local": "^3.0.0",
|
||||
"league/mime-type-detection": "^1.0.0",
|
||||
"php": "^7.2 || ^8.0"
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"conflict": {
|
||||
"guzzlehttp/ringphp": "<1.1.1"
|
||||
"async-aws/core": "<1.19.0",
|
||||
"async-aws/s3": "<1.14.0",
|
||||
"aws/aws-sdk-php": "3.209.31 || 3.210.0",
|
||||
"guzzlehttp/guzzle": "<7.0",
|
||||
"guzzlehttp/ringphp": "<1.1.1",
|
||||
"phpseclib/phpseclib": "3.0.15",
|
||||
"symfony/http-client": "<5.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"async-aws/s3": "^1.5",
|
||||
"async-aws/simple-s3": "^1.0",
|
||||
"aws/aws-sdk-php": "^3.132.4",
|
||||
"async-aws/simple-s3": "^1.1",
|
||||
"aws/aws-sdk-php": "^3.220.0",
|
||||
"composer/semver": "^3.0",
|
||||
"ext-fileinfo": "*",
|
||||
"ext-ftp": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.2",
|
||||
"ext-zip": "*",
|
||||
"friendsofphp/php-cs-fixer": "^3.5",
|
||||
"google/cloud-storage": "^1.23",
|
||||
"phpseclib/phpseclib": "^2.0",
|
||||
"microsoft/azure-storage-blob": "^1.1",
|
||||
"phpseclib/phpseclib": "^3.0.14",
|
||||
"phpstan/phpstan": "^0.12.26",
|
||||
"phpunit/phpunit": "^8.5 || ^9.4",
|
||||
"sabre/dav": "^4.1"
|
||||
"phpunit/phpunit": "^9.5.11|^10.0",
|
||||
"sabre/dav": "^4.3.1"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -762,7 +770,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/2.5.0"
|
||||
"source": "https://github.com/thephpleague/flysystem/tree/3.16.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -772,13 +780,69 @@
|
||||
{
|
||||
"url": "https://github.com/frankdejonge",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/league/flysystem",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-09-17T21:02:32+00:00"
|
||||
"time": "2023-09-07T19:22:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem-local",
|
||||
"version": "3.16.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/thephpleague/flysystem-local.git",
|
||||
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/ec7383f25642e6fd4bb0c9554fc2311245391781",
|
||||
"reference": "ec7383f25642e6fd4bb0c9554fc2311245391781",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-fileinfo": "*",
|
||||
"league/flysystem": "^3.0.0",
|
||||
"league/mime-type-detection": "^1.0.0",
|
||||
"php": "^8.0.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"League\\Flysystem\\Local\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Frank de Jonge",
|
||||
"email": "info@frankdejonge.nl"
|
||||
}
|
||||
],
|
||||
"description": "Local filesystem adapter for Flysystem.",
|
||||
"keywords": [
|
||||
"Flysystem",
|
||||
"file",
|
||||
"files",
|
||||
"filesystem",
|
||||
"local"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/thephpleague/flysystem-local/issues",
|
||||
"source": "https://github.com/thephpleague/flysystem-local/tree/3.16.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://ecologi.com/frankdejonge",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/frankdejonge",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-08-30T10:23:59+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/mime-type-detection",
|
||||
@@ -1086,35 +1150,36 @@
|
||||
},
|
||||
{
|
||||
"name": "overtrue/flysystem-cos",
|
||||
"version": "4.0.1",
|
||||
"version": "5.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/overtrue/flysystem-cos.git",
|
||||
"reference": "d86e1d5f3f7a881c672a698fbdfa08a767b3ea38"
|
||||
"reference": "bbcfe9195e96a9d5262c79fdb1e57820d45dd664"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/overtrue/flysystem-cos/zipball/d86e1d5f3f7a881c672a698fbdfa08a767b3ea38",
|
||||
"reference": "d86e1d5f3f7a881c672a698fbdfa08a767b3ea38",
|
||||
"url": "https://api.github.com/repos/overtrue/flysystem-cos/zipball/bbcfe9195e96a9d5262c79fdb1e57820d45dd664",
|
||||
"reference": "bbcfe9195e96a9d5262c79fdb1e57820d45dd664",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/flysystem": "^2.0",
|
||||
"overtrue/qcloud-cos-client": "^1.0.0",
|
||||
"php": ">=7.4"
|
||||
"league/flysystem": "^3.0",
|
||||
"overtrue/qcloud-cos-client": "^2.0",
|
||||
"php": ">=8.0.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"brainmaestro/composer-git-hooks": "^2.7",
|
||||
"friendsofphp/php-cs-fixer": "^2.15",
|
||||
"mockery/mockery": "~1.0",
|
||||
"phpunit/phpunit": "~9"
|
||||
"brainmaestro/composer-git-hooks": "dev-master",
|
||||
"laravel/pint": "^1.6",
|
||||
"league/flysystem-adapter-test-utilities": "^3.0",
|
||||
"mockery/mockery": "^1.0",
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"hooks": {
|
||||
"pre-commit": [
|
||||
"composer test",
|
||||
"composer check-style"
|
||||
"composer fix-style",
|
||||
"composer test"
|
||||
],
|
||||
"pre-push": [
|
||||
"composer test",
|
||||
@@ -1140,7 +1205,7 @@
|
||||
"description": "Flysystem adapter for the QCloud COS storage.",
|
||||
"support": {
|
||||
"issues": "https://github.com/overtrue/flysystem-cos/issues",
|
||||
"source": "https://github.com/overtrue/flysystem-cos/tree/4.0.1"
|
||||
"source": "https://github.com/overtrue/flysystem-cos/tree/5.1.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1148,32 +1213,43 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-11-10T09:20:45+00:00"
|
||||
"time": "2023-05-26T09:00:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "overtrue/flysystem-qiniu",
|
||||
"version": "2.0.1",
|
||||
"version": "3.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/overtrue/flysystem-qiniu.git",
|
||||
"reference": "8d997760cff8967d9d6861d359c404f8ec6aa316"
|
||||
"reference": "cf87e0fd74ba80736c7e0e9d19e1422eee6617d2"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/overtrue/flysystem-qiniu/zipball/8d997760cff8967d9d6861d359c404f8ec6aa316",
|
||||
"reference": "8d997760cff8967d9d6861d359c404f8ec6aa316",
|
||||
"url": "https://api.github.com/repos/overtrue/flysystem-qiniu/zipball/cf87e0fd74ba80736c7e0e9d19e1422eee6617d2",
|
||||
"reference": "cf87e0fd74ba80736c7e0e9d19e1422eee6617d2",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/flysystem": "^2.0",
|
||||
"php": ">=7.2",
|
||||
"league/flysystem": "^3.0",
|
||||
"qiniu/php-sdk": "^7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "1.3.1",
|
||||
"phpunit/phpunit": "~8.0"
|
||||
"mockery/mockery": "^1.4",
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"hooks": {
|
||||
"pre-commit": [
|
||||
"composer test",
|
||||
"composer check-style"
|
||||
],
|
||||
"pre-push": [
|
||||
"composer test",
|
||||
"composer check-style"
|
||||
]
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Overtrue\\Flysystem\\Qiniu\\": "src"
|
||||
@@ -1192,7 +1268,7 @@
|
||||
"description": "Flysystem adapter for the Qiniu storage.",
|
||||
"support": {
|
||||
"issues": "https://github.com/overtrue/flysystem-qiniu/issues",
|
||||
"source": "https://github.com/overtrue/flysystem-qiniu/tree/2.0.1"
|
||||
"source": "https://github.com/overtrue/flysystem-qiniu/tree/3.2.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1200,20 +1276,20 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-12T03:23:12+00:00"
|
||||
"time": "2023-05-02T13:14:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "overtrue/qcloud-cos-client",
|
||||
"version": "1.0.4",
|
||||
"version": "2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/overtrue/qcloud-cos-client.git",
|
||||
"reference": "64ca47881afe4fd0961958f85674dcae71421913"
|
||||
"reference": "238ef94beb0f856336e3cedd93b21c1c42228540"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/overtrue/qcloud-cos-client/zipball/64ca47881afe4fd0961958f85674dcae71421913",
|
||||
"reference": "64ca47881afe4fd0961958f85674dcae71421913",
|
||||
"url": "https://api.github.com/repos/overtrue/qcloud-cos-client/zipball/238ef94beb0f856336e3cedd93b21c1c42228540",
|
||||
"reference": "238ef94beb0f856336e3cedd93b21c1c42228540",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1221,16 +1297,18 @@
|
||||
"ext-json": "*",
|
||||
"ext-libxml": "*",
|
||||
"ext-simplexml": "*",
|
||||
"guzzlehttp/guzzle": "^7.2",
|
||||
"php": ">=7.4",
|
||||
"psr/http-message": "^1.0"
|
||||
"guzzlehttp/guzzle": "^7.4",
|
||||
"php": ">=8.0.2",
|
||||
"psr/http-message": "^1.0|^2.0",
|
||||
"thenorthmemory/xml": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"brainmaestro/composer-git-hooks": "^2.7",
|
||||
"friendsofphp/php-cs-fixer": "^3.4.0",
|
||||
"brainmaestro/composer-git-hooks": "^2.8",
|
||||
"friendsofphp/php-cs-fixer": "^3.5",
|
||||
"laravel/pint": "^1.2",
|
||||
"mockery/mockery": "^1.0",
|
||||
"monolog/monolog": "^2.1",
|
||||
"phpunit/phpunit": "^9.0"
|
||||
"monolog/monolog": "^2.5",
|
||||
"phpunit/phpunit": "^9.5"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -1263,7 +1341,7 @@
|
||||
"description": "Client of QCloud.com COS",
|
||||
"support": {
|
||||
"issues": "https://github.com/overtrue/qcloud-cos-client/issues",
|
||||
"source": "https://github.com/overtrue/qcloud-cos-client/tree/1.0.4"
|
||||
"source": "https://github.com/overtrue/qcloud-cos-client/tree/2.0.2"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1271,7 +1349,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-07T00:18:25+00:00"
|
||||
"time": "2023-08-16T08:56:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoffice/phpspreadsheet",
|
||||
@@ -1910,6 +1988,57 @@
|
||||
],
|
||||
"time": "2022-01-02T09:55:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "thenorthmemory/xml",
|
||||
"version": "1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/TheNorthMemory/xml.git",
|
||||
"reference": "6f50c63450a0b098772423f8bdc3c4ad2c4c30bb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/TheNorthMemory/xml/zipball/6f50c63450a0b098772423f8bdc3c4ad2c4c30bb",
|
||||
"reference": "6f50c63450a0b098772423f8bdc3c4ad2c4c30bb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-libxml": "*",
|
||||
"ext-simplexml": "*",
|
||||
"php": ">=7.1.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^0.12.89 || ^1.0",
|
||||
"phpunit/phpunit": "^7.5 || ^8.5.16 || ^9.3.5"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"TheNorthMemory\\Xml\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "James ZHANG",
|
||||
"homepage": "https://github.com/TheNorthMemory"
|
||||
}
|
||||
],
|
||||
"description": "A wrapper of the XML parser and builder",
|
||||
"homepage": "https://github.com/TheNorthMemory/xml",
|
||||
"keywords": [
|
||||
"xml-builder",
|
||||
"xml-parser"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/TheNorthMemory/xml/issues",
|
||||
"source": "https://github.com/TheNorthMemory/xml/tree/1.1.1"
|
||||
},
|
||||
"time": "2023-01-15T06:01:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "topthink/framework",
|
||||
"version": "v8.0.2",
|
||||
@@ -2028,52 +2157,6 @@
|
||||
},
|
||||
"time": "2023-04-27T07:18:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "topthink/think-filesystem",
|
||||
"version": "v2.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/top-think/think-filesystem.git",
|
||||
"reference": "c08503232fcae0c3c7fefae5e6b5c841ffe09f2f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/top-think/think-filesystem/zipball/c08503232fcae0c3c7fefae5e6b5c841ffe09f2f",
|
||||
"reference": "c08503232fcae0c3c7fefae5e6b5c841ffe09f2f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"league/flysystem": "^2.0",
|
||||
"topthink/framework": "^6.1|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"mockery/mockery": "^1.2",
|
||||
"phpunit/phpunit": "^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"think\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "yunwuxin",
|
||||
"email": "448901948@qq.com"
|
||||
}
|
||||
],
|
||||
"description": "The ThinkPHP6.1 Filesystem Package",
|
||||
"support": {
|
||||
"issues": "https://github.com/top-think/think-filesystem/issues",
|
||||
"source": "https://github.com/top-think/think-filesystem/tree/v2.0.2"
|
||||
},
|
||||
"time": "2023-02-08T01:23:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "topthink/think-helper",
|
||||
"version": "v3.1.6",
|
||||
|
||||
89
extend/think/Filesystem.php
Normal file
89
extend/think/Filesystem.php
Normal file
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2021 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: yunwuxin <448901948@qq.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace think;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use think\filesystem\Driver;
|
||||
use think\filesystem\driver\Local;
|
||||
use think\helper\Arr;
|
||||
|
||||
/**
|
||||
* Class Filesystem
|
||||
* @package think
|
||||
* @mixin Driver
|
||||
* @mixin Local
|
||||
*/
|
||||
class Filesystem extends Manager
|
||||
{
|
||||
protected $namespace = '\\think\\filesystem\\driver\\';
|
||||
|
||||
/**
|
||||
* @param null|string $name
|
||||
* @return Driver
|
||||
*/
|
||||
public function disk(string $name = null): Driver
|
||||
{
|
||||
return $this->driver($name);
|
||||
}
|
||||
|
||||
protected function resolveType(string $name)
|
||||
{
|
||||
return $this->getDiskConfig($name, 'type', 'local');
|
||||
}
|
||||
|
||||
protected function resolveConfig(string $name)
|
||||
{
|
||||
return $this->getDiskConfig($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取缓存配置
|
||||
* @access public
|
||||
* @param null|string $name 名称
|
||||
* @param mixed $default 默认值
|
||||
* @return mixed
|
||||
*/
|
||||
public function getConfig(string $name = null, $default = null)
|
||||
{
|
||||
if (!is_null($name)) {
|
||||
return $this->app->config->get('filesystem.' . $name, $default);
|
||||
}
|
||||
|
||||
return $this->app->config->get('filesystem');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取磁盘配置
|
||||
* @param string $disk
|
||||
* @param null $name
|
||||
* @param null $default
|
||||
* @return array
|
||||
*/
|
||||
public function getDiskConfig($disk, $name = null, $default = null)
|
||||
{
|
||||
if ($config = $this->getConfig("disks.{$disk}")) {
|
||||
return Arr::get($config, $name, $default);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException("Disk [$disk] not found.");
|
||||
}
|
||||
|
||||
/**
|
||||
* 默认驱动
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDefaultDriver()
|
||||
{
|
||||
return $this->getConfig('default');
|
||||
}
|
||||
}
|
||||
33
extend/think/facade/Filesystem.php
Normal file
33
extend/think/facade/Filesystem.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2021 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: yunwuxin <448901948@qq.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace think\facade;
|
||||
|
||||
use think\Facade;
|
||||
use think\filesystem\Driver;
|
||||
|
||||
/**
|
||||
* Class Filesystem
|
||||
* @package think\facade
|
||||
* @mixin \think\Filesystem
|
||||
* @method static Driver disk(string $name = null) , null|string
|
||||
* @method static mixed getConfig(null|string $name = null, mixed $default = null) 获取缓存配置
|
||||
* @method static array getDiskConfig(string $disk, null $name = null, null $default = null) 获取磁盘配置
|
||||
* @method static string|null getDefaultDriver() 默认驱动
|
||||
*/
|
||||
class Filesystem extends Facade
|
||||
{
|
||||
protected static function getFacadeClass()
|
||||
{
|
||||
return \think\Filesystem::class;
|
||||
}
|
||||
}
|
||||
130
extend/think/filesystem/Driver.php
Normal file
130
extend/think/filesystem/Driver.php
Normal file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2021 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: yunwuxin <448901948@qq.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace think\filesystem;
|
||||
|
||||
use League\Flysystem\Filesystem;
|
||||
use League\Flysystem\FilesystemAdapter;
|
||||
use League\Flysystem\UnableToSetVisibility;
|
||||
use League\Flysystem\UnableToWriteFile;
|
||||
use RuntimeException;
|
||||
use think\Cache;
|
||||
use think\File;
|
||||
|
||||
/**
|
||||
* Class Driver
|
||||
* @package think\filesystem
|
||||
* @mixin Filesystem
|
||||
*/
|
||||
abstract class Driver
|
||||
{
|
||||
|
||||
/** @var Cache */
|
||||
protected $cache;
|
||||
|
||||
/** @var Filesystem */
|
||||
protected $filesystem;
|
||||
|
||||
/**
|
||||
* 配置参数
|
||||
* @var array
|
||||
*/
|
||||
protected $config = [];
|
||||
|
||||
public function __construct(Cache $cache, array $config)
|
||||
{
|
||||
$this->cache = $cache;
|
||||
$this->config = array_merge($this->config, $config);
|
||||
|
||||
$adapter = $this->createAdapter();
|
||||
$this->filesystem = $this->createFilesystem($adapter);
|
||||
}
|
||||
|
||||
abstract protected function createAdapter(): FilesystemAdapter;
|
||||
|
||||
protected function createFilesystem(FilesystemAdapter $adapter): Filesystem
|
||||
{
|
||||
$config = array_intersect_key($this->config, array_flip(['visibility', 'disable_asserts', 'url']));
|
||||
|
||||
return new Filesystem($adapter, $config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件完整路径
|
||||
* @param string $path
|
||||
* @return string
|
||||
*/
|
||||
public function path(string $path): string
|
||||
{
|
||||
return $path;
|
||||
}
|
||||
|
||||
protected function concatPathToUrl($url, $path)
|
||||
{
|
||||
return rtrim($url, '/') . '/' . ltrim($path, '/');
|
||||
}
|
||||
|
||||
public function url(string $path): string
|
||||
{
|
||||
throw new RuntimeException('This driver does not support retrieving URLs.');
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存文件
|
||||
* @param string $path 路径
|
||||
* @param File $file 文件
|
||||
* @param null|string|\Closure $rule 文件名规则
|
||||
* @param array $options 参数
|
||||
* @return bool|string
|
||||
*/
|
||||
public function putFile(string $path, File $file, $rule = null, array $options = [])
|
||||
{
|
||||
return $this->putFileAs($path, $file, $file->hashName($rule), $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* 指定文件名保存文件
|
||||
* @param string $path 路径
|
||||
* @param File $file 文件
|
||||
* @param string $name 文件名
|
||||
* @param array $options 参数
|
||||
* @return bool|string
|
||||
*/
|
||||
public function putFileAs(string $path, File $file, string $name, array $options = [])
|
||||
{
|
||||
$stream = fopen($file->getRealPath(), 'r');
|
||||
$path = trim($path . '/' . $name, '/');
|
||||
|
||||
$result = $this->put($path, $stream, $options);
|
||||
|
||||
if (is_resource($stream)) {
|
||||
fclose($stream);
|
||||
}
|
||||
|
||||
return $result ? $path : false;
|
||||
}
|
||||
|
||||
protected function put(string $path, $contents, array $options = [])
|
||||
{
|
||||
try {
|
||||
$this->writeStream($path, $contents, $options);
|
||||
} catch (UnableToWriteFile|UnableToSetVisibility $e) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function __call($method, $parameters)
|
||||
{
|
||||
return $this->filesystem->$method(...$parameters);
|
||||
}
|
||||
}
|
||||
98
extend/think/filesystem/driver/Local.php
Normal file
98
extend/think/filesystem/driver/Local.php
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2006~2021 http://thinkphp.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: yunwuxin <448901948@qq.com>
|
||||
// +----------------------------------------------------------------------
|
||||
declare (strict_types = 1);
|
||||
|
||||
namespace think\filesystem\driver;
|
||||
|
||||
use League\Flysystem\FilesystemAdapter;
|
||||
use League\Flysystem\Local\LocalFilesystemAdapter;
|
||||
use League\Flysystem\PathNormalizer;
|
||||
use League\Flysystem\PathPrefixer;
|
||||
use League\Flysystem\UnixVisibility\PortableVisibilityConverter;
|
||||
use League\Flysystem\Visibility;
|
||||
use League\Flysystem\WhitespacePathNormalizer;
|
||||
use think\filesystem\Driver;
|
||||
|
||||
class Local extends Driver
|
||||
{
|
||||
/**
|
||||
* 配置参数
|
||||
* @var array
|
||||
*/
|
||||
protected $config = [
|
||||
'root' => '',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var PathPrefixer
|
||||
*/
|
||||
protected $prefixer;
|
||||
|
||||
/**
|
||||
* @var PathNormalizer
|
||||
*/
|
||||
protected $normalizer;
|
||||
|
||||
protected function createAdapter(): FilesystemAdapter
|
||||
{
|
||||
$visibility = PortableVisibilityConverter::fromArray(
|
||||
$this->config['permissions'] ?? [],
|
||||
$this->config['visibility'] ?? Visibility::PRIVATE
|
||||
);
|
||||
|
||||
$links = ($this->config['links'] ?? null) === 'skip'
|
||||
? LocalFilesystemAdapter::SKIP_LINKS
|
||||
: LocalFilesystemAdapter::DISALLOW_LINKS;
|
||||
|
||||
return new LocalFilesystemAdapter(
|
||||
$this->config['root'],
|
||||
$visibility,
|
||||
$this->config['lock'] ?? LOCK_EX,
|
||||
$links
|
||||
);
|
||||
}
|
||||
|
||||
protected function prefixer()
|
||||
{
|
||||
if (!$this->prefixer) {
|
||||
$this->prefixer = new PathPrefixer($this->config['root'], DIRECTORY_SEPARATOR);
|
||||
}
|
||||
return $this->prefixer;
|
||||
}
|
||||
|
||||
protected function normalizer()
|
||||
{
|
||||
if (!$this->normalizer) {
|
||||
$this->normalizer = new WhitespacePathNormalizer();
|
||||
}
|
||||
return $this->normalizer;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取文件访问地址
|
||||
* @param string $path 文件路径
|
||||
* @return string
|
||||
*/
|
||||
public function url(string $path): string
|
||||
{
|
||||
$path = $this->normalizer()->normalizePath($path);
|
||||
|
||||
if (isset($this->config['url'])) {
|
||||
return $this->concatPathToUrl($this->config['url'], $path);
|
||||
}
|
||||
return parent::url($path);
|
||||
}
|
||||
|
||||
public function path(string $path): string
|
||||
{
|
||||
return $this->prefixer()->prefixPath($path);
|
||||
}
|
||||
}
|
||||
@@ -26,10 +26,7 @@ class Txcos extends Driver
|
||||
'bucket' => $bucket,
|
||||
|
||||
// 可选,如果 bucket 为私有访问请打开此项
|
||||
'signed_url' => false,
|
||||
|
||||
// 可选,是否使用 https,默认 false
|
||||
'use_https' => true,
|
||||
'signed_url' => false
|
||||
];
|
||||
|
||||
$adapter = new CosAdapter($config);
|
||||
|
||||
Reference in New Issue
Block a user