English | 简体中文
Alibaba Cloud Object Storage Service For Laravel
This package is a wrapper bridging aliyun-oss-flysystem into Laravel as an available storage disk.
If client direct transmission is required, Use web server signature direct transmission OSS extension package aliyun-oss-appserver.
laravel | aliyun-oss-laravel | doc |
---|---|---|
>=5.5,<9.0 | ^3.0 | readme |
>=9.0 | ^4.0 | readme |
-
If you use the composer to manage project dependencies, run the following command in your project's root directory:
$ composer require alphasnow/aliyun-oss-laravel
Then run
composer install
to install the dependency. -
Modify the environment file
.env
OSS_ACCESS_KEY_ID=<Your aliyun accessKeyId, Required> OSS_ACCESS_KEY_SECRET=<Your aliyun accessKeySecret, Required> OSS_BUCKET=<Your oss bucket name, Required> OSS_ENDPOINT=<Your oss endpoint domain, Required>
- (Optional) Modify the configuration file
config/filesystems.php
'default' => env('FILESYSTEM_DRIVER', 'oss'), // ... 'disks'=>[ // ... 'oss' => [ 'driver' => 'oss', 'access_key_id' => env('OSS_ACCESS_KEY_ID'), // Required, YourAccessKeyId 'access_key_secret' => env('OSS_ACCESS_KEY_SECRET'), // Required, YourAccessKeySecret 'bucket' => env('OSS_BUCKET'), // Required, For example: my-bucket 'endpoint' => env('OSS_ENDPOINT'), // Required, For example: oss-cn-shanghai.aliyuncs.com 'internal' => env('OSS_INTERNAL', null), // Optional, For example: oss-cn-shanghai-internal.aliyuncs.com 'domain' => env('OSS_DOMAIN', null), // Optional, For example: oss.my-domain.com 'use_ssl' => env('OSS_SSL', false), // Optional, Whether to use HTTPS 'prefix' => env('OSS_PREFIX', ''), // Optional, The prefix of the store path 'reverse_proxy' => env('OSS_REVERSE_PROXY', false), // Optional, Nginx reverse proxy domain ], // ... ]
- (Optional) Modify the configuration file
use Illuminate\Support\Facades\Storage;
$storage = Storage::disk('oss');
Storage::disk('oss')->putFile('dir/path', '/local/path/file.txt');
Storage::disk('oss')->putFileAs('dir/path', '/local/path/file.txt', 'file.txt');
Storage::disk('oss')->put('dir/path/file.txt', file_get_contents('/local/path/file.txt'));
$fp = fopen('/local/path/file.txt','r');
Storage::disk('oss')->put('dir/path/file.txt', $fp);
fclose($fp);
Storage::disk('oss')->prepend('dir/path/file.txt', 'Prepend Text');
Storage::disk('oss')->append('dir/path/file.txt', 'Append Text');
Storage::disk('oss')->put('dir/path/secret.txt', 'My secret', 'private');
Storage::disk('oss')->put('dir/path/download.txt', 'Download content', ["headers" => ["Content-Disposition" => "attachment; filename=file.txt"]]);
Storage::disk('oss')->url('dir/path/file.txt');
Storage::disk('oss')->temporaryUrl('dir/path/file.txt', \Carbon\Carbon::now()->addMinutes(30));
Storage::disk('oss')->get('dir/path/file.txt');
Storage::disk('oss')->exists('dir/path/file.txt');
Storage::disk('oss')->size('dir/path/file.txt');
Storage::disk('oss')->lastModified('dir/path/file.txt');
Storage::disk('oss')->delete('dir/path/file.txt');
Storage::disk('oss')->delete(['dir/path/file1.txt', 'dir/path/file2.txt']);
Storage::disk('oss')->copy('dir/path/file.txt', 'dir/path/file_new.txt');
Storage::disk('oss')->move('dir/path/file.txt', 'dir/path/file_new.txt');
Storage::disk('oss')->rename('dir/path/file.txt', 'dir/path/file_new.txt');
Storage::disk('oss')->makeDirectory('dir/path');
Storage::disk('oss')->deleteDirectory('dir/path');
Storage::disk('oss')->files('dir/path');
Storage::disk('oss')->allFiles('dir/path');
Storage::disk('oss')->directories('dir/path');
Storage::disk('oss')->allDirectories('dir/path');
Storage::disk('oss')->appendObject('dir/path/news.txt', 'The first line paragraph.', 0);
Storage::disk('oss')->appendObject('dir/path/news.txt', 'The second line paragraph.', 25);
Storage::disk('oss')->appendObject('dir/path/news.txt', 'The last line paragraph.', 51);
$position001 = Storage::disk('oss')->appendFile('dir/path/file.zip', 'dir/path/file.zip.001', 0);
$position002 = Storage::disk('oss')->appendFile('dir/path/file.zip', 'dir/path/file.zip.002', $position001);
$position003 = Storage::disk('oss')->appendFile('dir/path/file.zip', 'dir/path/file.zip.003', $position002);