Open aronei44 opened 2 years ago
I have same issue
i think its not upgraded yet. i'll waiting this great package
./composer.json has been updated Running composer update nao-pon/flysystem-google-drive Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages.
Problem 1
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Duplicate of #90 Try this fork for Laravel 9.x flysystem-google-drive-ext (It uses the same config) Example: laravel-google-drive-ext-demo Give them a star if it works for you
I finally fixed it using the fork mentioned by @PaolaRuby.
Make sure your .env
has the necessary google api keys: (Check here if you don't know how!)
FILESYSTEM_CLOUD=google
GOOGLE_DRIVE_CLIENT_ID=xxx.apps.googleusercontent.com
GOOGLE_DRIVE_CLIENT_SECRET=xxx
GOOGLE_DRIVE_REFRESH_TOKEN=xxx
GOOGLE_DRIVE_FOLDER=my_folder_name
#GOOGLE_DRIVE_TEAM_DRIVE_ID=xxx
Create a service provider class, php artisan make:provider GoogleDriveServiceProvider
, and update your boot()
method as below
public function boot()
{
\Illuminate\Support\Facades\Storage::extend('google', function($app, $config) {
$client = new \Google\Client();
$client->setClientId($config['clientId']);
$client->setClientSecret($config['clientSecret']);
$client->refreshToken($config['refreshToken']);
$service = new \Google\Service\Drive($client);
$options = [];
if(isset($config['teamDriveId'])) {
$options['teamDriveId'] = $config['teamDriveId'];
}
$adapter = new \Masbug\Flysystem\GoogleDriveAdapter($service, $config['folder'] ?? '/', $options);
$driver = new \League\Flysystem\Filesystem($adapter);
return new \Illuminate\Filesystem\FilesystemAdapter($driver, $adapter);
});
}
Include App\Providers\GoogleDriveServiceProvider::class,
inside the providers
array of config/app.php
class.
Go to config/filesystems.php
and add a 'google' driver inside disks arrays, as below:
'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'),
// 'teamDriveId' => env('GOOGLE_DRIVE_TEAM_DRIVE_ID'),
],
And then finally inside the routes/web.php
create a test route as below
Route::get('test', function() {
\Illuminate\Support\Facades\Storage::disk('google')->put('test.txt', 'Hello World');
return 'New file was created!';
});
I hope you'll find this helpful. At least this is how I managed to successfully create a test.txt file in my GDRIVE.
Yes, I experience the same problem. Tried what @PaolaRuby recommendation but it needs a lot of changes from my previous implementation. The new version of this repo needs to be updated hopefully!
I receive { "error": { "errors": [ { "domain": "global", "reason": "required", "message": "Login Required", "locationType": "header", "location": "Authorization" } ], "code": 401, "message": "Login Required" } }
@oriceon your keys are wrong, or maybe your google app is on test mode, so oauth stop working after 7 days, hard to say with almost no information
@douxlagithub this package has no changes since 29 Jul 2020, maybe you can make a fork, and upgrade it: link for upgrade
@besartzeka Did u get it to work with folderId or folderName?
Duplicate of #90 Try this fork for Laravel 9.x flysystem-google-drive-ext (It uses the same config) Example: laravel-google-drive-ext-demo Give them a star if it works for you
No there are some issue in this package. I got issue on clean backup
@hckoks use the previus version, the last release has a problem, v2.2.0
I have same issue
@rizkytegar the answer is there, you only have to read
but it needs a lot of changes from my previous implementation. The new version of this repo needs to be updated hopefully!
No changes needed, it's the same, look at nao-pon/flysystem-google-drive
replacement examples
Just add 'useDisplayPaths' => false,
on config array(GoogleDriveServiceProvider.php
)
$options = [
'useDisplayPaths' => false, // just add this
];
if(isset($config['teamDriveId'])) {
$options['teamDriveId'] = $config['teamDriveId'];
}
$adapter = new GoogleDriveAdapter($service, $config['folder'] ?? '/', $options);
$driver = new Filesystem($adapter);
return new FilesystemAdapter($driver, $adapter);
the problem :