Laravel + React Inertiajsを使用したファイルストレージアプリです。フロントエンドのコードはこのリポジトリに基づいています。
LaravelとInertiajsはnextjsの代わりに採用されています。このアプリはLaravel Breeze認証を使用し、アップロードされたファイルをプロジェクトフォルダ内に保存するため、オリジナルのfile-driveアプリとは異なり、外部サービスを必要とせずにアパッチサーバー上で動作できます。
テーブルデータを管理するために、Laravel Filament が採用されており、シンプルで使いやすい機能を提供します。
- Groupsはユーザーと多対多の関係を持ちます。
- File_typesはアップロード可能なすべてのファイルタイプを含みます。
- Favoritesにはユーザーのお気に入りファイルが含まれます。
- Download_historiesにはユーザーが行ったダウンロードの記録が含まれます。
サイズの大きなファイルをアップロードするケースや、サーバーのアップロード上限が小さいなどのケースに対応するために、このアプリではファイルを小さいサイズ(チャンク)に分割してアップロードを実行します。デフォルトではチャンクサイズは 4MB ですが、.env ファイルの CHUNK_UPLOAD_SIZE を設定してサイズを変更できます。
ストレージ容量に上限を設定することができます。.env ファイルの MAX_STORAGE_CAPACITY にサイズを指定(cf. 10GiB)します。 MAX_STORAGE_CAPACITY を設定した場合、ナビゲーションバーに最大容量と現在の利用状況が表示されます。
このアプリケーションはMITライセンスのもとでオープンソースソフトウェアとして提供されています。