From 7b68716a3dac05aff746fed50daea61a7fabd913 Mon Sep 17 00:00:00 2001 From: HamuZ HamuZ <550499+hamuz@users.noreply.github.com> Date: Sat, 13 Oct 2018 20:05:53 +0300 Subject: [PATCH] allow sftp host as backing storage using env --- composer.json | 4 + composer.lock | 305 ++++++++++++++++++++++++++++++- config/filesystems.php | 400 ++++++++++++++++++++++++++++++++++++++++- 3 files changed, 702 insertions(+), 7 deletions(-) diff --git a/composer.json b/composer.json index aa51f3bb78..1c59e3ac14 100644 --- a/composer.json +++ b/composer.json @@ -58,6 +58,7 @@ "adldap2/adldap2-laravel": "^4.0", "bacon/bacon-qr-code": "1.*", "bunq/sdk_php": "dev-master#8c1faefc111d9b970168a1837ca165d854954941", + "danhunsaker/laravel-flysystem-others": "^1.3", "davejamesmiller/laravel-breadcrumbs": "5.*", "doctrine/dbal": "2.*", "fideloper/proxy": "4.*", @@ -66,7 +67,10 @@ "laravelcollective/html": "5.7.*", "league/commonmark": "0.*", "league/csv": "9.*", + "league/flysystem-replicate-adapter": "^1.0", + "league/flysystem-sftp": "^1.0", "league/fractal": "^0.17.0", + "litipk/flysystem-fallback-adapter": "^0.1.3", "mschindler83/fints-hbci-php": "^1.0", "pragmarx/google2fa": "3.*", "pragmarx/google2fa-laravel": "0.*", diff --git a/composer.lock b/composer.lock index 624a0fc83c..5ada4c8269 100644 --- a/composer.lock +++ b/composer.lock @@ -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": "f8b29d89e3421b9a03cbaf4c1ae3fba4", + "content-hash": "f28fdf6ec034460c012d2734231029b7", "packages": [ { "name": "adldap2/adldap2", @@ -219,7 +219,179 @@ "payment", "sepa" ], - "time": "2018-10-05T13:50:22+00:00" + "time": "2018-09-01T12:54:04+00:00" + }, + { + "name": "danhunsaker/laravel-flysystem-others", + "version": "v1.3.4", + "source": { + "type": "git", + "url": "https://github.com/danhunsaker/laravel-flysystem-others.git", + "reference": "43c5e3bf8cbb9bc22a2e228cb644882f0be52f29" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danhunsaker/laravel-flysystem-others/zipball/43c5e3bf8cbb9bc22a2e228cb644882f0be52f29", + "reference": "43c5e3bf8cbb9bc22a2e228cb644882f0be52f29", + "shasum": "" + }, + "require": { + "danhunsaker/laravel-flysystem-service": "^1.1", + "illuminate/filesystem": "^5.0", + "illuminate/support": "^5.0", + "league/flysystem": "^1.0" + }, + "suggest": { + "aliyuncs/aliyun-oss-flysystem": "One of the options to use the 'oss' adapter (^1.2)", + "aobozhang/aliyun-oss-adapter": "One of the options to use the 'oss' adapter (^1.0)", + "apollopy/flysystem-aliyun-oss": "One of the options to use the 'oss' adapter (^1.2)", + "argentcrusade/flysystem-selectel": "Required to use the 'selectel' adapter (^1.2)", + "arhitector/yandex-disk-flysystem": "Required to use the 'yandex' adapter (^1.0)", + "boofw/flysystem-qiniu": "One of the options to use the 'qiniu' adapter (^1.0)", + "carlosocarvalho/flysystem-cloudinary": "One of the options to use the 'cloudinary' adapter (^1.0)", + "cedricziel/flysystem-gcs": "One of the options to use the 'google' adapter (^2.0)", + "danhunsaker/flysystem-redis": "Required to use the 'redis' adapter (^1.0)", + "emgag/flysystem-tempdir": "Required to use the 'temp' adapter (^0.1)", + "engineor/flysystem-runabove": "Required to use the 'runabove' adapter (^1.0)", + "enl/flysystem-cloudinary": "One of the options to use the 'cloudinary' adapter (^1.1)", + "eqingdan/flysystem-qiniu": "One of the options to use the 'qiniu' adapter (^0.1)", + "freyo/flysystem-qcloud-cos-v3": "One of the options to use the 'qcloud' adapter (^)", + "freyo/flysystem-qcloud-cos-v4": "One of the options to use the 'qcloud' adapter (^)", + "freyo/flysystem-qcloud-cos-v5": "One of the options to use the 'qcloud' adapter (^)", + "ignited/flysystem-google-drive": "One of the options to use the 'gdrive' adapter (dev-master)", + "ignited/flysystem-onedrive": "One of the options to use the 'onedrive' adapter (dev-master)", + "integral/flysystem-pdo-adapter": "One of the options to use the 'pdo' adapter (^1.0)", + "jacekbarecki/flysystem-onedrive": "One of the options to use the 'onedrive' adapter (^1.0)", + "jellybool/flysystem-upyun": "Required to use the 'upyun' adapter (^1.0)", + "kapersoft/flysystem-sharefile": "Required to use the 'sharefile' adapter (^1.1)", + "litipk/flysystem-fallback-adapter": "Required to use the 'fallback' adapter, and with league/flysystem-replicate-adapter, the 'mirror' adapter (^0.1)", + "mgriego/flysystem-clamav": "Scans files for viruses before storing them on an actual filesystem (^1.0)", + "mhetreramesh/flysystem-backblaze": "Required to use the 'backblaze' adapter (^1.1)", + "monster/flysystem-aliyun-oss": "One of the options to use the 'oss' adapter, but not recommended, since it uses the League namespace without being a Leage package (^1.0)", + "nao-pon/flysystem-google-drive": "One of the options to use the 'gdrive' adapter (^1.1)", + "nicolasbeauvais/flysystem-onedrive": "One of the options to use the 'onedrive' adapter (^1.0)", + "nimbusoft/flysystem-openstack-swift": "Required to use the 'openstack' adapter (^0.2)", + "orzcc/aliyun-oss": "One of the options to use the 'oss' adapter (dev-master)", + "overtrue/flysystem-qiniu": "One of the options to use the 'qiniu' adapter (^1.0)", + "phlib/flysystem-pdo": "One of the options to use the 'pdo' adapter (^1.1)", + "potherca/flysystem-github": "Required to use the 'github' adapter (^0.2)", + "private-it/flysystem-google-drive": "One of the options to use the 'gdrive' adapter (dev-master)", + "robgridley/flysystem-smb": "Required to use the 'smb' adapter (dev-master)", + "rokde/flysystem-local-database-adapter": "Required to use the 'eloquent' adapter (^0.0)", + "shion/aliyun-oss": "One of the options to use the 'oss' adapter (dev-master)", + "spatie/flysystem-dropbox": "Required to use the 'dropbox' adapter in PHP 7 (^1.0)", + "srmklive/flysystem-dropbox-v2": "Required to use the 'dropbox' adapter in PHP 5 (^1.0)", + "superbalist/flysystem-google-storage": "One of the options to use the 'google' adapter (^7.0)", + "t3chnik/flysystem-cloudinary-adapter": "One of the options to use the 'cloudinary' adapter (dev-master)", + "twistor/flysystem-guzzle": "One of the options to use the (read-only) 'http' adapter (^6.0)", + "twistor/flysystem-http": "One of the options to use the (read-only) 'http' adapter (^0.2)", + "twistor/flysystem-stream-wrapper": "Allows access to Flysystem drives using 'drive://path' streams (^1.0)", + "xxtime/flysystem-aliyun-oss": "One of the options to use the 'oss' adapter (^1.2)", + "zhuxiaoqiao/flysystem-baidu-bos": "Required to use the 'bos' adapter (^1.0)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Danhunsaker\\Laravel\\Flysystem\\FlysystemOtherServiceProvider" + ], + "dont-discover": [ + "danhunsaker/laravel-flysystem-service" + ] + } + }, + "autoload": { + "psr-4": { + "Danhunsaker\\Laravel\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Hunsaker", + "email": "danhunsaker@gmail.com" + } + ], + "description": "Automatically registers every third-party Flysystem adapter it recognizes as a Laravel Filesystem Driver.", + "keywords": [ + "Flysystem", + "laravel" + ], + "time": "2018-08-16T11:20:15+00:00" + }, + { + "name": "danhunsaker/laravel-flysystem-service", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/danhunsaker/laravel-flysystem-service.git", + "reference": "0d077a0ddadc08e80fa2f152da2ee7aaaea37735" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/danhunsaker/laravel-flysystem-service/zipball/0d077a0ddadc08e80fa2f152da2ee7aaaea37735", + "reference": "0d077a0ddadc08e80fa2f152da2ee7aaaea37735", + "shasum": "" + }, + "require": { + "illuminate/filesystem": "^5.0", + "illuminate/support": "^5.0", + "league/flysystem": "^1.0" + }, + "suggest": { + "league/flysystem-aws-s3-v3": "Required to use the 's3' adapter (^1.0)", + "league/flysystem-azure-blob-storage": "Required to use the 'azure' adapter (^1.0)", + "league/flysystem-cached-adapter": "Required to use metadata caching (^1.0)", + "league/flysystem-eventable-filesystem": "Required to hook into filesystem Events (^1.0)", + "league/flysystem-gridfs": "Required to use the 'gridfs' adapter (^1.0)", + "league/flysystem-memory": "Required to use the 'memory' adapter (^1.0)", + "league/flysystem-phpcr": "Required to use the 'phpcr' adapter (^1.0)", + "league/flysystem-rackspace": "Required to use the 'rackspace' adapter (^1.0)", + "league/flysystem-replicate-adapter": "Required to use the 'replicate' adapter (^1.0)", + "league/flysystem-sftp": "Required to use the 'sftp' adapter (^1.0)", + "league/flysystem-vfs": "Required to use the 'vfs' adapter (^1.0)", + "league/flysystem-webdav": "Required to use the 'webdav' adapter (^1.0)", + "league/flysystem-ziparchive": "Required to use the 'zip' adapter (^1.0)", + "madewithlove/illuminate-psr-cache-bridge": "Required to use Laravel's cache implementation for Flysystem caching (^1.0)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Danhunsaker\\Laravel\\Flysystem\\FlysystemServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Danhunsaker\\Laravel\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Daniel Hunsaker", + "email": "danhunsaker@gmail.com" + } + ], + "description": "Automatically registers every Flysystem adapter it recognizes as a Laravel Filesystem Driver.", + "keywords": [ + "Flysystem", + "laravel" + ], + "time": "2018-08-13T22:27:45+00:00" }, { "name": "davejamesmiller/laravel-breadcrumbs", @@ -1732,6 +1904,94 @@ ], "time": "2018-09-14T15:30:29+00:00" }, + { + "name": "league/flysystem-replicate-adapter", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-replicate-adapter.git", + "reference": "864e80409c0918b0ed6921c3941247017d9db77c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-replicate-adapter/zipball/864e80409c0918b0ed6921c3941247017d9db77c", + "reference": "864e80409c0918b0ed6921c3941247017d9db77c", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\Replicate\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Flysystem adapter for Replica's", + "time": "2015-08-18T21:07:17+00:00" + }, + { + "name": "league/flysystem-sftp", + "version": "1.0.16", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-sftp.git", + "reference": "322839636847e0dba0f714e9ad0db813d65efcf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-sftp/zipball/322839636847e0dba0f714e9ad0db813d65efcf2", + "reference": "322839636847e0dba0f714e9ad0db813d65efcf2", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0", + "php": ">=5.6.0", + "phpseclib/phpseclib": "~2.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "^5.7.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Sftp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Flysystem adapter for SFTP", + "time": "2018-07-08T21:01:51+00:00" + }, { "name": "league/fractal", "version": "0.17.0", @@ -1866,6 +2126,47 @@ ], "time": "2018-06-23T16:57:59+00:00" }, + { + "name": "litipk/flysystem-fallback-adapter", + "version": "0.1.3", + "source": { + "type": "git", + "url": "https://github.com/Litipk/flysystem-fallback-adapter.git", + "reference": "1fdeb9352990deb8cba2a2c57cc94e2ff7e1381b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Litipk/flysystem-fallback-adapter/zipball/1fdeb9352990deb8cba2a2c57cc94e2ff7e1381b", + "reference": "1fdeb9352990deb8cba2a2c57cc94e2ff7e1381b", + "shasum": "" + }, + "require": { + "league/flysystem": "~1.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Litipk\\Flysystem\\Fallback\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andrés Correa Casablanca", + "email": "castarco@litipk.com" + } + ], + "description": "Flysystem adapter for fallback filesystems", + "time": "2016-06-23T00:18:01+00:00" + }, { "name": "monolog/monolog", "version": "1.23.0", diff --git a/config/filesystems.php b/config/filesystems.php index 1633b48e06..d08f7a3804 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -21,6 +21,21 @@ declare(strict_types=1); +$upload_disk = [ + 'driver' => 'mirror', + 'disks' => ['local-upload'], +]; + +$export_disk = [ + 'driver' => 'mirror', + 'disks' => ['local-upload'], +]; + +if ('' !== env('SFTP_HOST','') && '' !== env('SFTP_FIREFLY_ROOT','')) { + $upload_disk['disks'][] = "sftp-upload"; + $export_disk['disks'][] = "sftp-export"; +} + return [ @@ -59,7 +74,11 @@ return [ | may even configure multiple disks of the same driver. Defaults have | been setup for each driver as an example of the required options. | - | Supported Drivers: "local", "ftp", "s3", "rackspace" + | Supported: "local", "ftp", "s3", "rackspace", "null", "azure", "copy", + | "dropbox", "gridfs", "memory", "phpcr", "replicate", "sftp", + | "vfs", "webdav", "zip", "bos", "cloudinary", "eloquent", + | "fallback", "github", "gdrive", "google", "mirror", "onedrive", + | "oss", "qiniu", "redis", "runabove", "sae", "smb", "temp" | */ @@ -69,15 +88,16 @@ return [ 'driver' => 'local', 'root' => storage_path('app'), ], - - 'upload' => [ + + 'local-upload' => [ 'driver' => 'local', 'root' => storage_path('upload'), ], - 'export' => [ + 'local-export' => [ 'driver' => 'local', 'root' => storage_path('export'), ], + 'database' => [ 'driver' => 'local', 'root' => storage_path('database'), @@ -105,7 +125,377 @@ return [ 'region' => env('AWS_REGION'), 'bucket' => env('AWS_BUCKET'), ], + + 'sftp-upload' => [ + 'driver' => 'sftp', + 'host' => env('SFTP_HOST'), + 'port' => env('SFTP_PORT', 22), + 'username' => env('SFTP_USERNAME'), + 'password' => env('SFTP_PASSWORD'), + 'root' => env('SFTP_FIREFLY_ROOT') . '/upload', + // Optional SFTP Settings + // 'privateKey' => 'path/to/or/contents/of/privatekey', + // 'port' => 22, + // 'timeout' => 30, + // 'directoryPerm' => 0755, + // 'permPublic' => 0644, + // 'permPrivate' => 0600, + ], + + 'upload' => $upload_disk, + + 'sftp-export' => [ + 'driver' => 'sftp', + 'host' => env('SFTP_HOST'), + 'port' => env('SFTP_PORT', 22), + 'username' => env('SFTP_USERNAME'), + 'password' => env('SFTP_PASSWORD'), + 'root' => env('SFTP_FIREFLY_ROOT') . '/export', + // Optional SFTP Settings + // 'privateKey' => 'path/to/or/contents/of/privatekey', + // 'timeout' => 30, + // 'directoryPerm' => 0755, + // 'permPublic' => 0644, + // 'permPrivate' => 0600, + ], + + 'export' => $upload_export, + /* + 'sftp' => [ + 'driver' => 'sftp', + 'host' => 'sftp.example.com', + 'username' => 'username', + 'password' => 'password', + // Optional SFTP Settings + // 'privateKey' => 'path/to/or/contents/of/privatekey', + // 'port' => 22, + // 'root' => '/path/to/root', + // 'timeout' => 30, + // 'directoryPerm' => 0755, + // 'permPublic' => 0644, + // 'permPrivate' => 0600, + ], + + 'rackspace' => [ + 'driver' => 'rackspace', + 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', + 'username' => 'your-username', + 'key' => 'your-key', + 'region' => 'IAD', + 'url_type' => 'publicURL', + 'container' => 'your-container', + ], + + 'null' => [ + 'driver' => 'null', + ], + + 'azure' => [ + 'driver' => 'azure', + 'accountName' => 'your-account-name', + 'apiKey' => 'your-api-key', + 'container' => 'your-container', + ], + + 'gridfs' => [ + 'driver' => 'gridfs', + 'server' => 'your-server', + 'context' => 'your-context', + 'dbName' => 'your-db-name', + // You can also provide other MongoDB connection options here + ], + + 'memory' => [ + 'driver' => 'memory', + ], + + 'phpcr-jackrabbit' => [ + 'driver' => 'phpcr', + 'jackrabbit_url' => 'your-jackrabbit-url', + 'workspace' => 'your-workspace', + 'root' => 'your-root', + // Optional PHPCR Settings + // 'userId' => 'your-user-id', + // 'password' => 'your-password', + ], + + 'phpcr-dbal' => [ + 'driver' => 'phpcr', + 'database' => 'mysql', + 'workspace' => 'your-workspace', + 'root' => 'your-root', + // Optional PHPCR Settings + // 'userId' => 'your-user-id', + // 'password' => 'your-password', + ], + + 'phpcr-prismic' => [ + 'driver' => 'phpcr', + 'prismic_uri' => 'your-prismic-uri', + 'workspace' => 'your-workspace', + 'root' => 'your-root', + // Optional PHPCR Settings + // 'userId' => 'your-user-id', + // 'password' => 'your-password', + ], + + 'replicate' => [ + 'driver' => 'replicate', + 'master' => 'local', + 'replica' => 's3', + ], + + 'vfs' => [ + 'driver' => 'vfs', + ], + + 'webdav' => [ + 'driver' => 'webdav', + 'baseUri' => 'http://example.org/dav/', + // Optional WebDAV Settings + // 'userName' => 'user', + // 'password' => 'password', + // 'proxy' => 'locahost:8888', + // 'authType' => 'digest', // alternately 'ntlm' or 'basic' + // 'encoding' => 'all', // same as ['deflate', 'gzip', 'identity'] + ], + + 'zip' => [ + 'driver' => 'zip', + 'path' => 'path/to/file.zip', + // Alternate value if twistor/flysystem-stream-wrapper is available + // 'path' => 'local://path/to/file.zip', + ], + + 'backblaze' => [ + 'driver' => 'backblaze', + 'account_id' => 'your-account-id', + 'application_key' => 'your-app-key', + 'bucket' => 'your-bucket', + ], + + 'bos' => [ + 'driver' => 'bos', + 'credentials' => [ + 'ak' => 'your-access-key-id', + 'sk' => 'your-secret-access-key', + ], + 'bucket' => 'your-bucket', + // Optional BOS Settings + // 'endpoint' => 'http://bj.bcebos.com', + ], + + 'clamav' => [ + 'driver' => 'clamav', + 'server' => 'tcp://127.0.0.1:3310', + 'drive' => 'local', + // Optional ClamAV Settings + // 'copy_scan' => false, + ], + + 'cloudinary' => [ + 'driver' => 'cloudinary', + 'api_key' => env('CLOUDINARY_API_KEY'), + 'api_secret' => env('CLOUDINARY_API_SECRET'), + 'cloud_name' => env('CLOUDINARY_CLOUD_NAME'), + ], + + 'dropbox' => [ + 'driver' => 'dropbox', + 'authToken' => 'your-auth-token', + ], + + 'eloquent' => [ + 'driver' => 'eloquent', + // Optional Eloquent Settings + // 'model' => '\Rokde\Flysystem\Adapter\Model\FileModel', + ], + + 'fallback' => [ + 'driver' => 'fallback', + 'main' => 'local', + 'fallback' => 's3', + ], + + 'gdrive' => [ + 'driver' => 'gdrive', + 'client_id' => 'your-client-id', + 'secret' => 'your-secret', + 'token' => 'your-token', + // Optional GDrive Settings + // 'root' => 'your-root-directory', + // 'paths_sheet' => 'your-paths-sheet', + // 'paths_cache_drive' => 'local', + ], + + 'github' => [ + 'driver' => 'github', + 'project' => 'yourname/project', + 'token' => 'your-github-token', + ], + + 'google' => [ + 'driver' => 'google', + 'project_id' => 'your-project-id', + 'bucket' => 'your-bucket', + // Optional Google Cloud Storage Settings + // 'prefix' => 'prefix/path/for/drive', + // 'url' => 'http://your.custom.cname/', + // 'key_file' => 'path/to/file.json', + // + // Alternate value if twistor/flysystem-stream-wrapper is available + // 'key_file' => 'local://path/to/file.json', + ], + + 'http' => [ + 'driver' => 'http', + 'root' => 'http://example.com', + // Optional HTTP Settings + // 'use_head' => true, + // 'context' => [], + ], + + 'onedrive' => [ + 'driver' => 'onedrive', + 'access_token' => 'your-access-token', + // Options only needed for ignited/flysystem-onedrive + // 'base_url' => 'https://api.onedrive.com/v1.0/', + // 'use_logger' => false, + // Option only used by nicolasbeauvais/flysystem-onedrive + // 'root' => 'root', + ], + + 'openstack' => [ + 'driver' => 'openstack', + 'auth_url' => 'your-auth-url', + 'region' => 'your-region', + 'user_id' => 'your-user-id', + 'password' => 'your-password', + 'project_id' => 'your-project-id', + 'container' => 'your-container', + ], + + 'oss' => [ + 'driver' => 'oss', + 'access_id' => env('OSS_ACCESS_KEY_ID'), + 'access_key' => env('OSS_ACCESS_KEY_SECRET'), + 'endpoint' => env('OSS_ENDPOINT'), + 'bucket' => env('OSS_BUCKET'), + // Optional OSS Settings + // 'prefix' => '', + // 'region' => '', // One of 'hangzhou', 'qingdao', 'beijing', 'hongkong', + // // 'shenzhen', 'shanghai', 'west-1' and 'southeast-1' + ], + + 'pdo' => [ + 'driver' => 'pdo', + 'database' => 'default', + ], + + 'qcloud' => [ + 'driver' => 'qcloud', + 'app_id' => 'your-app-id', + 'secret_id' => 'your-secret-id', + 'secret_key' => 'your-secret-key', + 'bucket' => 'your-bucket-name', + 'protocol' => 'https', + // Optional Tencent/Qcloud COS Settings + // 'domain' => 'your-domain', + // 'timeout' => 60, + // 'region' => 'gz', + ], + + 'qiniu' => [ + 'driver' => 'qiniu', + 'accessKey' => 'your-access-key', + 'secretKey' => 'your-secret-key', + 'bucket' => 'your-bucket', + 'domain' => 'xxxx.qiniudn.com', + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'runabove' => [ + 'driver' => 'runabove', + 'username' => 'your-username', + 'password' => 'your-password', + 'tenantId' => 'your-tenantId', + // Optional Runabove Settings + // 'container' => 'container', + // 'region' => 'SBG1', // One of 'SBG1', 'BHS1', and 'GRA1' + ], + + 'selectel' => [ + 'driver' => 'selectel', + 'username' => 'your-username', + 'password' => 'your-password', + 'container' => 'your-container', + // Optional Selectel Settings + // 'domain' => '', + ], + + 'sharefile' => [ + 'driver' => 'sharefile', + 'hostname' => 'sharefile.example.com', + 'client_id' => 'your-client-id', + 'secret' => 'your-secret', + 'username' => 'your-username', + 'password' => 'your-password', + ], + + 'smb' => [ + 'driver' => 'smb', + 'host' => 'smb.example.com', + 'username' => 'your-username', + 'password' => 'your-password', + 'path' => 'path/to/shared/directory/for/root', + ], + + 'temp' => [ + 'driver' => 'temp', + // Optional TempDir Settings + // 'prefix' => '', + // 'tempdir' => '/tmp', + ], + + 'upyun' => [ + 'driver' => 'upyun', + 'bucket' => 'your-bucket', + 'operator' => 'operator-name', + 'password' => 'operator-password', + 'protocol' => 'https', + 'domain' => 'example.b0.upaiyun.com', + ], + + 'yandex' => [ + 'driver' => 'yandex', + 'access_token' => 'your-access-token', + // Optional Yandex Settings + // 'prefix' => 'app:/', + ], + */ ], - + + /* + |-------------------------------------------------------------------------- + | Automatically Register Stream Wrappers + |-------------------------------------------------------------------------- + | + | This is a list of the filesystem "disks" to automatically register the + | stream wrappers for on application start. Any "disk" you don't want to + | register on every application load will have to be manually referenced + | before attempting stream access, as the stream wrapper is otherwise only + | registered when used. + | + */ + /* + // Disabled, pending "twistor/flysystem-stream-wrapper" dependency + 'autowrap' => [ + 'local', + ], + */ ];