From febadd87ce85869439e31e73ead10512d40fb577 Mon Sep 17 00:00:00 2001 From: franknstayn Date: Mon, 19 Jul 2021 17:15:58 +0800 Subject: [PATCH] updated uploading store --- .../Controllers/admin/AdminController.php | 11 +- app/Providers/AppServiceProvider.php | 7 + composer.json | 3 +- composer.lock | 162 +++++++++++++++++- config/filesystems.php | 11 ++ .../views/admin_pages/dashboard.blade.php | 1 - storage/keys/crewsportswear_app.key | 28 +++ storage/keys/crewsportswear_app.ppk | 26 +++ 8 files changed, 242 insertions(+), 7 deletions(-) create mode 100644 storage/keys/crewsportswear_app.key create mode 100644 storage/keys/crewsportswear_app.ppk diff --git a/app/Http/Controllers/admin/AdminController.php b/app/Http/Controllers/admin/AdminController.php index f739852..f4f9929 100644 --- a/app/Http/Controllers/admin/AdminController.php +++ b/app/Http/Controllers/admin/AdminController.php @@ -196,8 +196,15 @@ class AdminController extends Controller if ($res) { - Storage::disk('uploads')->put('/teamstore/' . $store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+')); - Storage::disk('uploads')->put('/teamstore/' . $store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+')); + // Storage::disk('uploads')->put('/teamstore/' . $store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+')); + // Storage::disk('uploads')->put('/teamstore/' . $store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+')); + // Storage::disk('sftp')->put('/teamstore/' . $store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+')); + // Storage::disk('sftp')->put('/teamstore/' . $store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+')); + + $filesystem = Storage::disk('sftp'); + $filesystem->getDriver()->getAdapter()->setDirectoryPerm(0755); + $filesystem->put('/teamstore/' . $store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+')); + $filesystem->put('/teamstore/' . $store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+')); return response()->json(array( 'success' => true, diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index 35471f6..df6f307 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -3,6 +3,9 @@ namespace App\Providers; use Illuminate\Support\ServiceProvider; +use Storage; +use League\Flysystem\Filesystem; +use League\Flysystem\Sftp\SftpAdapter; class AppServiceProvider extends ServiceProvider { @@ -14,6 +17,10 @@ class AppServiceProvider extends ServiceProvider public function boot() { // + + Storage::extend('sftp', function ($app, $config) { + return new Filesystem(new SftpAdapter($config)); + }); } /** diff --git a/composer.json b/composer.json index 4943e17..338bc52 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,8 @@ "type": "project", "require": { "php": ">=5.5.9", - "laravel/framework": "5.2.*" + "laravel/framework": "5.2.*", + "league/flysystem-sftp": "1.0.22" }, "require-dev": { "fzaninotto/faker": "~1.4", diff --git a/composer.lock b/composer.lock index f794405..f8cd701 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8b1485987e7c5949da82435d403e52e8", + "content-hash": "af8d6f68d559b9573b148063cd25b63b", "packages": [ { "name": "classpreloader/classpreloader", @@ -518,6 +518,52 @@ ], "time": "2019-02-01T08:50:36+00:00" }, + { + "name": "league/flysystem-sftp", + "version": "1.0.22", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-sftp.git", + "reference": "cab59dd2277e02fe46f5f23195672a02ed49774d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-sftp/zipball/cab59dd2277e02fe46f5f23195672a02ed49774d", + "reference": "cab59dd2277e02fe46f5f23195672a02ed49774d", + "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", + "support": { + "issues": "https://github.com/thephpleague/flysystem-sftp/issues", + "source": "https://github.com/thephpleague/flysystem-sftp/tree/master" + }, + "time": "2019-10-16T20:05:49+00:00" + }, { "name": "monolog/monolog", "version": "1.24.0", @@ -797,6 +843,115 @@ ], "time": "2018-04-04T21:48:54+00:00" }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.32", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "f5c4c19880d45d0be3e7d24ae8ac434844a898cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/f5c4c19880d45d0be3e7d24ae8ac434844a898cd", + "reference": "f5c4c19880d45d0be3e7d24ae8ac434844a898cd", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.32" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2021-06-12T12:12:59+00:00" + }, { "name": "psr/log", "version": "1.1.0", @@ -3259,5 +3414,6 @@ "platform": { "php": ">=5.5.9" }, - "platform-dev": [] + "platform-dev": [], + "plugin-api-version": "2.0.0" } diff --git a/config/filesystems.php b/config/filesystems.php index 60318cc..f7d7f6c 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -66,6 +66,17 @@ return [ 'driver' => 'local', 'root' => env('UPLOAD_FOLDER_PATH'), ], + + 'sftp' => [ + 'driver' => 'sftp', + 'host' => '35.232.234.8', + 'port' => 22, + 'username' => 'root', + 'password' => '', + 'privateKey' => storage_path('keys/crewsportswear_app.ppk') . '', + 'root' => '/var/www/html/images/merchbay', + 'timeout' => 10 + ] ], ]; diff --git a/resources/views/admin_pages/dashboard.blade.php b/resources/views/admin_pages/dashboard.blade.php index 6e4ae8e..a96df3e 100644 --- a/resources/views/admin_pages/dashboard.blade.php +++ b/resources/views/admin_pages/dashboard.blade.php @@ -19,7 +19,6 @@ - diff --git a/storage/keys/crewsportswear_app.key b/storage/keys/crewsportswear_app.key new file mode 100644 index 0000000..91564ec --- /dev/null +++ b/storage/keys/crewsportswear_app.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDNeR+2rEElG4na +UI9Nv27noSfi8saDAFw5Z9i2+sPhugeWIsFpLXvQrzIf5R5gamJHui9h6fl6S1jr +PyzRqcDjGf8aBhBlFkMq7OvIkqf9wS3bQpmcEDJ/uZO1lBf4/XPdZ9OciFFnru4Q +gWkhHGoBRqJLMXlWi9lvLlOA9UYLkMzVGpqOSpYCV8v4qHoYVeEqPYc/HEaG9Wbv +xe07k1J+HSpL9jh3ftBOlS8x+ZRXzz89kQvnpX2N5Kdk5CQ6oDyMiKgzZzR+1ktr +Cf2cfD6QX++9p8Gbh5xczE48M3JBA7RRAMyC9k0ffzyu3cEW4Knjb98uoWHpu47s +luMJxme/AgMBAAECggEBAIShHZ5tW/OW7gm0nHvECNONC9ELgqXG0sDfTlz2SwBm +c0UvFAdPK6/Nlp5N56i2os/H15PtUnLlNfVLpyOC3pX5Dth+d5C4qQyJN70VJUi/ +rFjuiXbaYa5eXIEFod+/wk11Gnvc5ib2HIcc8X5E+AvwywucWMVLqkOA9Le2GsuV +OJ5nO36tAjmxli5+filFc6RWaB2+fzt/YtqhF95AhiJr/sOCo/a5xjo/xqf6hU58 +LJe13BF7PxQu/ACATN8od1UL+x92bPUHGQqyef4NtW/ePSiAosQfT4yhXzJTaTXg +DG/FrEVJB6PtamFQfHKHHc2MJ8ArIn6NX+QjQgCGZlkCgYEA8Q6wV+ODjC1sVfj/ +zvjCylsOKPkhab4t+Tq5W87gQ7TRXWf9y3cgVFhQmcpW24BFTCjbVKWwrlTRUIGL +gZ74HBtu/+amDl3W5OUgVBrZBJRYuFebP7rL8SNvPGBTvGrbxA5jYq6hrAo3mSEz +wCOIM+t1LssIBep6ztwwbpIss8MCgYEA2jXAwZsIxv5qpdLltO8zWPqDmPLVZCVl +C76Agd0o3hoHiZNil4L2uV+PMCUtFWm2PZax7cxokqNSoC6POvQr0Xi8RLZbd75q +xfOjCTiVsTQDaOh97jPehZoM1TlQCVcvrTW0ylccBfBjmfN+rQPbXdle4I7EA1Al +K6bqCieC6FUCgYB6ee4bGZuy0zliDRtb+4Rs8Aqnwry5T0loge+/t8K2Y96kSLvo +buRcNmrtWKL875VF9tRJk83LJYkcEFXjS/PfxAiHuJbSYddXgRsF4IY3D3BsaQaW +QMByCoDv+jlRWDHE0VKpxvSZxq8s/HOgwezoBFALsFipONOg2rs40sgnpQKBgDJs +SWZzlMum7q3y1fHBdHQTL2Wgd370xSy5kKhxmof4K9W2oQmx0aF0W3ocnRZdnycM +M4FnwqJf6y/okmBlG9sDsz2NhgVdkv67FemDkdOo2UDcuHzar4jf2CdNXxlJdFLq +HiTDjE4zBlEE2zjPs1k0aaAqXVEGrBAyOdKu3qkhAoGBAKECHYp/gIhDeIcNR5W/ +32e9RmRUJGlqV8+kt2CjnQfV8ZgqaXC6Xyzeoq5cN2BPkVU0FClyTkVq2q9fKj5D ++1/X2M9tyGO8m/673qqqtBmi3PFJIniaqDNFwc1CyRlmeqEzMNemPpTPYFlYcSVj +6S9F35lLnlzDsUa1hBBgcafB +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/storage/keys/crewsportswear_app.ppk b/storage/keys/crewsportswear_app.ppk new file mode 100644 index 0000000..11152d8 --- /dev/null +++ b/storage/keys/crewsportswear_app.ppk @@ -0,0 +1,26 @@ +PuTTY-User-Key-File-2: ssh-rsa +Encryption: none +Comment: imported-openssh-key +Public-Lines: 6 +AAAAB3NzaC1yc2EAAAADAQABAAABAQDbZtTWP3ilu76hWxCMKXeEUuD+9wGzkViW +JDFYaBn52rufMEI/CJaJc0wwWfK9340oUamZLEFwoMZymEAcIL3ZfhJZW8CSUN12 +ifkhmUXVGWhi4oGC3LsJrnZY8usG1byfdlSCHOm9FYwf/5GcFQVe966kgF4/MTDP +cMFNvQILtAefP5Jf2pOLbIMP+WjHGq6DWMdti9Yhtt9gRcQzG3wuOovOipKrvCgl +tnW2M/2FkkI7jyCqjl12XScWEE8GEzapJKhgfgiiL0hPx0pR57v0vlZrVg1JvbVL +ZNk6AubRyh7836vjr381p3cN1U/jlr6r3djM80ZjAXTP9KeYtuM9 +Private-Lines: 14 +AAABAEWAsOHiH30ZGY2SBI7yP+tKOf5rDz3sSEzf0EX6TGhLM259Yi8HsHCAdt1G +UVB29geUvw5H578fH16D/qMqeBnjBzsJhtqTBWUc1jAflvCn6NqSeIaVGCc7/j+1 +TGDQ6rz1RlYlhKIipk4ort7sBdSMz+VKyRBpq9W7GXFf87ryyeMBjAVGeGaLVfRM +hdRAt2wwUm/YBB2lWZCnelr9pPVEKj5Px1OVV7j3JSSjWZ2hMf5kMikicXXKrcJn +eRP7LZUWJviFuIg6rV0VSbXLfSX0JUDaVWprIXksecaVp5z7Es9LJRKHMuB2mMWc +coFa0kWWLhPgzdMKI6S3DN0AKoEAAACBAO6FA5fG3vGCU1i0So28Fb2GQfagQSKo +9+CVpvCBvqQA+l+YYJxm2hIjNkMcWzLYUtwWXhOcfpZtOaattfu0dv4JlhZXYJTF +VTAdbVrPMJsCk4hkaqZFa7yAyQ6VT0sIL/PCdOJ07bWS2OOsJrCzmpNMSMT3V8Ys ++FZ6OEJTCdVhAAAAgQDreyMFYH1LoiOnIDSktDQiqIcOKHKqbM3Z70ReMvWi3AOG +AtFxjE6q1sCvvJnwPJVWSv7bl4rxUK4qyAyl0ZOFYRrIjdwsLy6jvDB+iODYM3ey +euIzR6PDcdCkXibWaaXPzZLYW2HGYoIcBEksv2NrgDqPpbp0b+Rp4BEWvJG/XQAA +AIA1m29uRPMWb0NHDDDzKRGsjGgbhXWDNZHE4CfDU8M3/zaZ7WmJCRXf8QEfg54F +cr6Qvw1j9LOLS9C/tAzANFOwo5U5CpWB3k0mr+eqjlgGOdBX2ojhiYaLDOorgP6A +L3pU4xtcTqDjHpCABwH69TWnWho5lnKcBnWV0lvxcCnJDw== +Private-MAC: 385b11a436f1c7fbd10a06c5ae2b3fa19450c9c7