mohamedhabibwork/laravel-oci-driver

This is my package laravel-oci-driver

dev-main 2025-07-05 17:06 UTC

This package is auto-updated.

Last update: 2025-07-05 17:06:33 UTC


README

Laravel OCI Driver

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads PHPStan Level

πŸ› οΈ How to Install

composer require mohamedhabibwork/laravel-oci-driver

πŸš€ Implemented Features

  • Artisan Commands:

    • oci:setup – Create Oracle-compatible .oci folder, generate/copy key files, write config
    • oci:config – Interactive configuration for OCI settings, with --validate to check config
    • oci:connection – Manage multiple OCI connections: list, test, switch, summary
    • oci:status – Check connection status, test file operations, and list files in a bucket
  • Key Providers:

    • File-based (from file path)
    • Environment-based (from env variable, supports base64)
    • Custom providers via interface
  • Enums:

    • ConnectionType (primary, secondary, backup, development, testing, staging, production, archive)
    • StorageTier (Standard, InfrequentAccess, Archive)
    • LogLevel (emergency, alert, critical, error, warning, notice, info, debug)
  • Exception Handling:

    • PrivateKeyFileNotFoundException
    • SignerValidateException
    • SigningValidationFailedException
  • Configuration:

    • All required OCI config: tenancy, user, fingerprint, key path, region, namespace, bucket, storage tier
    • Optional: prefix, url, passphrase, advanced performance/cache options, debug/logging
  • Integration:

    • Laravel filesystem disk driver (oci)
    • Event system for file operations (upload, download, delete, etc.)
    • Service provider auto-registers everything
    • Health check and connection validation built-in

⚑ Quick Start

use Illuminate\Support\Facades\Storage;

// Upload a file
Storage::disk('oci')->put('documents/hello.txt', 'Hello, Oracle Cloud!');

// Download a file
$content = Storage::disk('oci')->get('documents/hello.txt');

// List files
$files = Storage::disk('oci')->files('documents');

πŸ“š Documentation

πŸ“ API Reference

See the API_REFERENCE.md for full method signatures, options, and advanced usage. For configuration, authentication, and advanced features, see the relevant guides above.

πŸ§ͺ Testing

composer test

See the Testing Guide for more details and examples.

πŸ”§ Troubleshooting

  • Use php artisan oci:config --validate to check your configuration
  • Ensure your OCI credentials and key files are correct
  • Check file permissions for private keys
  • See TROUBLESHOOTING.md for more help

🀝 Contributing

See CONTRIBUTING.md for guidelines.

πŸ“ž Support

πŸ“„ License

The MIT License (MIT). See LICENSE.md for details.

πŸ—ΊοΈ Roadmap

  • Advanced Health Checks (Spatie Health integration)
  • Connection Pooling and advanced parallel/multipart upload support
  • Custom Event Listeners for all storage operations
  • Improved Error Reporting and user-friendly CLI output
  • Web UI for Connection Management
  • More Key Providers (e.g., HashiCorp Vault, AWS Secrets Manager)
  • Automatic Key Rotation
  • Enhanced Documentation & Examples
  • Support for Additional OCI Services (beyond Object Storage)
  • Performance Benchmarks and Tuning Guides

πŸ‘₯ Credits

Made with ❀️ for the Laravel community

⭐ Star us on GitHub | πŸ“š Documentation | πŸ› Report Bug | πŸ’‘ Request Feature