Current Behavior
- The project already contains AWS S3 integration code, but it is currently commented in the codebase.
- Storage configuration is controlled only via
.env:
FILESYSTEM_DISK=local or s3
- Admins must manually edit
.env and code to enable S3.
- No UI exists to manage storage provider selection.
Problem
- S3 functionality exists but is not usable from the system.
- Requires developer/server access to enable S3.
- Not scalable or user-friendly for administrators.
- Risk of errors when uncommenting code or editing
.env.
Steps to reproduce :
Open the application: http://test.tadreeblms.com/
Login using admin credentials:
Username: testadmin@tadreeblms.com
Password: 123456
Proposed Enhancement
1) Activate S3 Support in Codebase
- Refactor existing commented S3 code into configurable logic.
- Ensure both Local and S3 storage drivers are supported dynamically.
2) Add Storage Settings UI in Admin Panel
Menu Path:
Settings -> Storage Settings
3) Storage Provider Selection
[Storage Type Dropdown]
- Local Storage
- AWS S3 Storage
4) Configuration Fields
If Local Storage selected:
If AWS S3 selected:
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
AWS_URL=
AWS_ENDPOINT=
AWS_ROOT=
5) Functional Requirements
[Save Storage Settings]
- Update values in
.env file.
- Enable or disable S3 logic dynamically (no commented code).
- Clear and reload configuration cache:
- php artisan config:clear
- php artisan config:cache
- Validate required fields based on selected storage type.
[Test Storage Connection]
- Input: "Test Connection" button
- For S3:
- Validate AWS credentials and bucket access.
- Show success or error message.
- For Local:
- Validate write permissions in local storage.
6) File Handling Logic
- New uploads should use the selected storage provider.
- Existing files should remain accessible.
- Storage disk should be resolved dynamically from configuration.
7) Security Requirements
- Only Admin users can access Storage Settings.
- Mask AWS Secret Key in UI.
- Prevent exposing credentials in frontend or logs.
8) UX / UI Requirements
- Clean layout with sections:
- Storage Provider Selection
- Configuration Details
- Test Connection
- Show warnings when switching storage providers.
Expected Outcome
- S3 integration becomes configurable instead of commented code.
- Admins can switch between Local and S3 without code changes.
- Cleaner architecture and enterprise-ready storage management.
Priority
High
Future Enhancements (Optional)
- File migration tool (Local ↔ S3).
- Support multiple storage profiles.
- Support additional providers (Azure, GCP).
- Storage usage monitoring dashboard.
Current Behavior
.env:FILESYSTEM_DISK=local or s3
.envand code to enable S3.Problem
.env.Steps to reproduce :
Open the application: http://test.tadreeblms.com/
Login using admin credentials:
Username: testadmin@tadreeblms.com
Password: 123456
Proposed Enhancement
1) Activate S3 Support in Codebase
2) Add Storage Settings UI in Admin Panel
Menu Path:
Settings -> Storage Settings
3) Storage Provider Selection
[Storage Type Dropdown]
4) Configuration Fields
If Local Storage selected:
If AWS S3 selected:
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=
AWS_BUCKET=
AWS_URL=
AWS_ENDPOINT=
AWS_ROOT=
5) Functional Requirements
[Save Storage Settings]
.envfile.[Test Storage Connection]
6) File Handling Logic
7) Security Requirements
8) UX / UI Requirements
Expected Outcome
Priority
High
Future Enhancements (Optional)