Hướng dẫn php artisan storage:link
Được đăng: Thứ bảy, 10 Tháng 2 2018 15:35 Lượt xem: 8547
Lợi ích của Laravel storage: - Việc lưu trữ các file sẽ tốn rất nhiều tài nguyên và băng thông trên server, giải pháp đưa ra là lưu trữ trên các server bên ngoài nên Laravel Storage được tích hợp hỗ trợ lưu trữ file trên server ngoài như Amazon S3. - Đơn giản hóa trong việc thiết lập các tùy chon. Cấu hình (Config): File cấu hình được đặt tại "config/filesystems.php" và được thiết lập sẵn như sau. /* |-------------------------------------------------------------------------- | Default Filesystem Disk |-------------------------------------------------------------------------- */ 'default' => env('FILESYSTEM_DRIVER', 'local'), /* |-------------------------------------------------------------------------- | Default Cloud Filesystem Disk |-------------------------------------------------------------------------- */ 'cloud' => env('FILESYSTEM_CLOUD', 's3'), /* |-------------------------------------------------------------------------- | Filesystem Disks |-------------------------------------------------------------------------- */ 'disks' => [ 'local' => [ 'driver' => 'local', 'root' => storage_path('app'), ], 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 's3' => [ 'driver' => 's3', 'key' => env('AWS_KEY'), 'secret' => env('AWS_SECRET'), 'region' => env('AWS_REGION'), 'bucket' => env('AWS_BUCKET'), ], ], Với Local Driver Khi thao tác tới file sẽ tương tác tới thư mục root được khai báo trong file, giá trị mặc định được trỏ tới storage/app. Do đó với đoạn code sau file sẽ được lưu trong storage/app/file.txt: Storage::disk('local')->put('file.txt', 'Contents'); Với config driver là S3 hoặc Rackspace cần cài đặt các package như yêu cầu thông qua composer
Cấu hình cho FTP Driver Mặc định FTP driver không được cấu hình mặc định trong filesystems.php. Bạn có thể sử dụng ví dụ cấu hình dưới đây như Laravel Docs: 'ftp' => [ 'driver' => 'ftp', 'host' => 'ftp.example.com', 'username' => 'your-username', 'password' => 'your-password', // Optional FTP Settings... // 'port' => 21, // 'root' => '', // 'passive' => true, // 'ssl' => true, // 'timeout' => 30, ] Cấu hình cho Rackspace Driver Cũng giống như FTP, Rackspace driver cũng không được config sẵn trong file filesystems.php. Các bạn có thể tham khảo cấu hình sau: 'rackspace' => [ 'driver' => 'rackspace', 'username' => 'your-username', 'key' => 'your-key', 'container' => 'your-container', 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', 'region' => 'IAD', 'url_type' => 'publicURL', ] Để sử dụng thư việc Storage các bạn đừng quên khai báo thư viện:
Sau khi khai báo thư viện các bạn có thể tương tác với các disk đã được cấu hình. $disk = Storage::disk('local'); // or $disk2 = Storage::disk('s3'); Giới thiệu các hàm cơ bản:
$contents = Storage::get('file.txt');
$exists = Storage::disk('local')->exists('file.txt');
$url = Storage::url('file.txt');
$size = Storage::size('file.txt');
$time = Storage::lastModified('file.txt');
Storage::put('file.txt', $contents); Storage::put('file.txt', $resource);
Storage::copy('old/file.txt', 'new/file.txt');
Storage::move('old/file.txt', 'new/file.txt');
Storage::prepend('file.txt', 'Prepended Text');
Storage::append('file.txt', 'Appended Text');
Storage::delete('file.txt'); Storage::delete(['file1.txt', 'file2.txt']);
$files = Storage::files($directory);
$files = Storage::allFiles($directory);
$directories = Storage::directories($directory);
$directories = Storage::allDirectories($directory);
Storage::makeDirectory($directory);
Storage::deleteDirectory($directory);
return Storage::download('file.jpg'); Mong rằng qua bài này sẽ giúp các bạn hiểu hơn về Storage trong Laravel. Các bạn có thể xây dựng một hệ thống quản lý các media của mình trên server một cách dễ dàng hơn. Chúc các bạn thành công trong lập trình Laravel. Ngụy Kim Hưng |