Code Monkey home page Code Monkey logo

Comments (4)

erikn69 avatar erikn69 commented on July 22, 2024 3

https://github.com/erikn69/laravel-google-drive-ext-demo
Look at folder/file permissions

from flysystem-google-drive-ext.

Pushkraj19 avatar Pushkraj19 commented on July 22, 2024 1

Found the solution

You need to change your backup.php config app name to your google drive folder name

`<?php

return [

'backup' => [

    /*
     * The name of this application. You can use this name to monitor
     * the backups.
     * changed it to drive folder name
     */
    'name' => env('GOOGLE_DRIVE_FOLDER_NAME', 'default'),
    `

And remove GOOGLE_DRIVE_FOLDER from env

from flysystem-google-drive-ext.

sutcliffe121 avatar sutcliffe121 commented on July 22, 2024 1

Can you clarify the fix please...

I still have a problem if I specify a folder name in my .env file (example below)

The only way it works is if I leave "GOOGLE_DRIVE_FOLDER=" blank in my .env - the files are then backed up to my root Google Drive directory.

.env

FILESYSTEM_CLOUD=google
GOOGLE_DRIVE_CLIENT_ID=xxxx
GOOGLE_DRIVE_CLIENT_SECRET=xxxx
GOOGLE_DRIVE_REFRESH_TOKEN=xxxx
GOOGLE_DRIVE_FOLDER="BackUps"

config/backup.php
'name' => env('GOOGLE_DRIVE_FOLDER', 'laravel-backup'),

config/filesystems.php

        'google' => [
            'driver' => 'google',
            'clientId' => env('GOOGLE_DRIVE_CLIENT_ID'),
            'clientSecret' => env('GOOGLE_DRIVE_CLIENT_SECRET'),
            'refreshToken' => env('GOOGLE_DRIVE_REFRESH_TOKEN'),
            'folder' => env('GOOGLE_DRIVE_FOLDER'), // without folder is root of drive or team drive
        ],

GoogleDriveServiceProvider:

    public function boot(){
        // ...
        try {
            \Storage::extend('google', function($app, $config) {
                $options = [];

                if (!empty($config['teamDriveId'] ?? null)) {
                    $options['teamDriveId'] = $config['teamDriveId'];
                }

                if (!empty($config['sharedFolderId'] ?? null)) {
                    $options['sharedFolderId'] = $config['sharedFolderId'];
                }

                $client = new \Google\Client();
                $client->setClientId($config['clientId']);
                $client->setClientSecret($config['clientSecret']);
                $client->refreshToken($config['refreshToken']);
                
                $service = new \Google\Service\Drive($client);
                $adapter = new \Masbug\Flysystem\GoogleDriveAdapter($service, $config['folder'] ?? '/', $options);
                $driver = new \League\Flysystem\Filesystem($adapter);

                return new \Illuminate\Filesystem\FilesystemAdapter($driver, $adapter);
            });
        } catch(\Exception $e) {
            // your exception handling logic
        }
        // ...
    }


from flysystem-google-drive-ext.

Pushkraj19 avatar Pushkraj19 commented on July 22, 2024

Please explain little more. What kind of file permissions? drive? backup? framework? storage?

from flysystem-google-drive-ext.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.