https://github.com/halalsoft/laravel-google-cloud-storage
A Google Cloud Storage flysystem for Laravel
https://github.com/halalsoft/laravel-google-cloud-storage
Last synced: over 1 year ago
JSON representation
A Google Cloud Storage flysystem for Laravel
- Host: GitHub
- URL: https://github.com/halalsoft/laravel-google-cloud-storage
- Owner: HalalSoft
- License: mit
- Created: 2020-07-06T08:40:29.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2021-10-14T19:47:41.000Z (over 4 years ago)
- Last Synced: 2025-01-16T00:14:47.789Z (over 1 year ago)
- Language: PHP
- Size: 18.6 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
- License: LICENSE
Awesome Lists containing this project
README
# Laravel Google Cloud Storage
A Google Cloud Storage filesystem for Laravel.
[](https://github.styleci.io/repos/277488235?branch=master)
[](https://scrutinizer-ci.com/g/HalalSoft/laravel-google-cloud-storage/?branch=master)
[](https://www.codacy.com/gh/HalalSoft/laravel-google-cloud-storage?utm_source=github.com&utm_medium=referral&utm_content=HalalSoft/laravel-google-cloud-storage&utm_campaign=Badge_Grade)
[](https://scrutinizer-ci.com/code-intelligence)
[](https://scrutinizer-ci.com/g/HalalSoft/laravel-google-cloud-storage/build-status/master)
[](https://github.com/neneone/SnapeBot)
[](LICENSE)
[](https://github.com/neneone/SnapeBot)
[](https://packagist.org/packages/halalsoft/laravel-google-cloud-storage)
[](https://packagist.org/packages/halalsoft/laravel-google-cloud-storage)
This is using [flysystem-aws-s3-v3](https://packagist.org/packages/league/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
```php
'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:
```php
'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](https://laravel.com/docs/7.x/filesystem)
Examples:
```php
$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');
```