halalsoft / laravel-google-cloud-storage
A Google Cloud Storage flysystem for Laravel
Installs: 5 122
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.0.0
- illuminate/filesystem: >=5.6
- illuminate/support: *
- league/flysystem-aws-s3-v3: ^1.0
- league/flysystem-cached-adapter: ^1.0
This package is auto-updated.
Last update: 2024-10-15 03:02:09 UTC
README
A Google Cloud Storage filesystem for Laravel.
This is using flysystem-aws-s3-v3. Because Google Cloud Storage uses the same api as Amazon S3, so actually I just use the same driver but I renamed to gcs.
Installation
composer require halalsoft/laravel-google-cloud-storage
Add a new disk to your filesystems.php
config
'gcs' => [ 'driver' => 'gcs', 'key' => env('GCP_ACCESS_KEY_ID'), 'secret' => env('GCP_SECRET_ACCESS_KEY'), 'bucket' => env('GCP_BUCKET'), ],
Above is the config that required, here is other possible configs:
'gcs' => [ 'driver' => 'gcs', 'key' => env('GCP_ACCESS_KEY_ID'), 'secret' => env('GCP_SECRET_ACCESS_KEY'), 'bucket' => env('GCP_BUCKET'), 'visibility' => 'public', //Default visibility, you can set public or private 'url' => "https://custom.domain.com", //Your public URL (if you use custom domain or CDN) 'endpoint' => "https://storage.googleapis.com", //Your endpoint URL (if you use custom driver) 'cache' => [ 'store' => 'memcached', 'expire' => 600, 'prefix' => 'cache-prefix', ], ],
Usage
You can use most of Laravel Filesystem API
Examples:
$disk = Storage::disk('gcs'); // create a file $disk->put('avatars/1', $request->file("image")); // check if a file exists $exists = $disk->exists('image.jpg'); // get file last modification date $time = $disk->lastModified('image1.jpg'); // copy a file $disk->copy('old/image1.jpg', 'new/image1.jpg'); // move a file $disk->move('old/image1.jpg', 'new/image1.jpg'); // get url to file $url = $disk->url('avatar/yaskur.jpg');