役立つ情報
登録日: 2025-01-31   最終更新日: 2025-03-19

Laravel の Storage 操作方法

Laravel Storage は、Laravel フレームワークが提供するファイルの保存・管理機能を扱うためのシステムです。Storage ファサードを通じて簡単にファイルの保存、取得、削除、一覧取得などの操作ができます。

主な特徴

ローカルディスクやクラウドストレージとの統一的なインターフェース

  • ローカル (storage/app)
  • パブリック (storage/app/public)
  • クラウド (Amazon S3, Google Cloud Storage, Dropbox など)

ディスク設定の柔軟性

  • 設定ファイル config/filesystems.php で複数のディスクを定義可能
  • デフォルトのディスクを FILESYSTEM_DISK 環境変数で変更可能

ストレージのシンボリックリンク

  • storage/app/public を public/storage にリンクし、Web からアクセス可能にする

php artisan storage:link

基本的な使い方

Storage ファサードを使って、ファイルのアップロード、削除、取得が可能。 Storage を利用するには、以下を読み込む必要がある。


use Illuminate\Support\Facades\Storage;

ファイル操作

ファイルの保存


Storage::disk('local')->put('example.txt', 'Example text');

特定の場所に保存


Storage::disk('local')->putFile('example.txt', 'Example text');

ファイルの取得


$content = Storage::disk('local')->get('example.txt');

ファイルの一覧取得

すべてのファイル


$files = Storage::disk('local')->files();

すべてのディレクトリ


$directories = Storage::disk('local')->directories();

ファイル削除


Storage::disk('local')->delete('example.txt');

ファイルを複数削除する場合


Storage::disk('local')->delete(['example.txt','example.txt']);

ディレクトリ操作

特定のディレクトリ(全ファイルを取得)


Storage::disk('local')->files('dirPath');

特定のディレクトリ(全ファイルを取得(サブディレクトリを含む))


Storage::disk('local')->allFiles('dirPath');

特定パスの全ディレクトリ取得


Storage::disk('local')->directories('dirPath');

特定パスの全ディレクトリ(全ディレクトリを取得(サブディレクトリを含む))


Storage::disk('local')->allDirectories('dirPath');

ディレクトリ作成


Storage::disk('local')->makeDirectory('dirPath');

ディレクトリ削除


Storage::disk('local')->deleteDirectory('dirPath');

クラウドストレージの利用

Amazon S3 などのクラウドストレージを利用する場合、.env にクレデンシャルを設定し、config/filesystems.php でディスクを指定します。


'disks' => [
    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
        'url' => env('AWS_URL'),
    ],
],

使用例


Storage::disk('s3')->put('uploads/file.txt', 'Cloud storage');

Copyright 役立つ情報.net