Skip to content

Releases: kaibatech/viettel-cloud-s3

v1.0.1

25 May 18:36
Compare
Choose a tag to compare

Added

  • Support for Laravel 12.x compatibility
  • Support for PHPUnit ^11.0 compatibility
  • Support for Orchestra Testbench ^10.0 for Laravel 12 testing

Updated

  • Updated GitHub Actions workflow to test Laravel 12 compatibility
  • Extended compatibility matrix to include Laravel 10.x, 11.x, and 12.x
  • Updated requirements to support Laravel ^10.0 || ^11.0 || ^12.0

Requirements

  • PHP ^8.2
  • Laravel ^10.0 || ^11.0 || ^12.0
  • League/Flysystem ^3.0

v1.0.0

25 May 18:21
Compare
Choose a tag to compare

Added

  • Initial release of Viettel Cloud Object Storage Laravel Storage Driver
  • Custom Flysystem adapter for VIPCore/EMC ViPR S3-compatible endpoints
  • AWS v4 signature calculation compatible with VIPCore requirements
  • Support for UNSIGNED-PAYLOAD content hash (required by VIPCore)
  • File upload, download, delete, and existence check operations
  • Public/private file visibility support with ACL headers
  • MIME type detection for uploaded files
  • URL generation for file access
  • Comprehensive error handling with Flysystem exceptions
  • Laravel 10.x and 11.x compatibility
  • Auto-discovery service provider registration
  • Configurable via environment variables
  • Full documentation and usage examples

Features

  • ✅ Upload files with Storage::disk('viettel-s3')->put()
  • ✅ Download files with Storage::disk('viettel-s3')->get()
  • ✅ Check file existence with Storage::disk('viettel-s3')->exists()
  • ✅ Generate URLs with Storage::disk('viettel-s3')->url()
  • ✅ Delete files with Storage::disk('viettel-s3')->delete()
  • ✅ File metadata retrieval (size, MIME type, last modified)
  • ✅ Stream support for large files
  • ✅ Batch operations for multiple files
  • ✅ Public/private file visibility
  • ✅ Custom signature calculation bypassing AWS SDK issues

Technical Details

  • Direct cURL implementation for HTTP requests
  • Manual AWS v4 signature calculation
  • Proper canonical request formatting
  • Alphabetical header ordering for signatures
  • Content integrity checks with SHA256
  • Comprehensive logging for debugging

Requirements

  • PHP ^8.2
  • Laravel ^10.0 || ^11.0
  • League/Flysystem ^3.0