LaravelPackages.net
Acme Inc.
Toggle sidebar
private-it/flysystem-google-drive

FlySystem adapter for Google Drive (work with path)

7.863
19
1.4.0
About private-it/flysystem-google-drive

private-it/flysystem-google-drive is a Laravel package for flysystem adapter for google drive (work with path). It currently has 19 GitHub stars and 7.863 downloads on Packagist (latest version 1.4.0). Install it with composer require private-it/flysystem-google-drive. Discover more Laravel packages by private-it or browse all Laravel packages to compare alternatives.

Last updated

flysystem-google-drive

FlySystem adapter for Google Drive (work with path)

This project is wrapper of nao-pon/flysystem-google-drive

Read more information this

Installation

composer require private-it/flysystem-google-drive:dev-master

Config

Config params:

[
    'clientId' => 'xxxxxxxxxxx.apps.googleusercontent.com',
    'clientSecret' => 'xxxxxxxxxxx',
    'refreshToken' => 'xxxxxxxxxxx',
    'folderId' => 'xxxxxxxxxxx',
    'sheetId' => 'xxxxxxxxxxx',
];

folderId - uses as root folder for upload/read.

sheetId - file id of "Google Sheets" document. Uses for save path-fileId. This document must be shared for public read.

Usage example

See examples/test.php

git clone https://github.com/private-it/flysystem-google-drive.git
composer install

Copy examples/config.example.php to examples/config.php

php examples/test.php

Usage with Laravel

Configuration google drive config/filesystems.php

    'disks' => [
...
        'googleDrive' => [
            'driver' => 'googleDrive',
            'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'),
            'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'),
            'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'),
            'folderId' => env('GOOGLE_DRIVE_FOLDER_ID'),
            'sheetId' => env('GOOGLE_DRIVE_PATH_MANAGER_SHEET_ID'),
        ],
...
    ],

[Laravel v4] Add ServiceProvider to config/app.php

'providers' => [
    ...
    PrivateIT\FlySystem\GoogleDrive\GoogleDriveServiceProvider::class
    ...
]

For custom PathManager you can set binding in file bootstrap/app.php

$app->bind(\PrivateIT\FlySystem\GoogleDrive\PathManager::class, \PrivateIT\FlySystem\GoogleDrive\GoogleSheetsPathManager::class);

Usage:

$disk = \Storage::disk('googleDrive');
$adapter = $disk->getDriver()->getAdapter();

$dir = 'test/sub1/sub2';
$fileName = 'test/sub1/sub2/new-file-1.txt';

var_dump($disk->makeDirectory($dir));
var_dump($disk->put($fileName, 'test content'));
var_dump($adapter->getUrl($fileName));
var_dump($disk->deleteDir($dir));

Star History Chart