diecoding/flysystem-google-drive
Composer 安装命令:
composer require diecoding/flysystem-google-drive
包简介
Flysystem adapter for Google Drive
README 文档
README
Installation
- For Google Drive API V3
composer require diecoding/flysystem-google-drive:~1.1
Usage
Follow Google Docs to obtain your ClientId, ClientSecret & refreshToken in addition you can also check this easy-to-follow tutorial
- you can also check This Example for a better understanding.
$client = new \Google_Client(); $client->setClientId('[app client id].apps.googleusercontent.com'); $client->setClientSecret('[app client secret]'); $client->refreshToken('[your refresh token]'); $service = new \Google_Service_Drive($client); $adapter = new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter($service, '['root' or folder ID]'); /* Recommended cached adapter use */ // $adapter = new \League\Flysystem\Cached\CachedAdapter( // new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter($service, '['root' or folder ID]'), // new \League\Flysystem\Cached\Storage\Memory() // ); $filesystem = new \League\Flysystem\Filesystem($adapter);
Usage to with elFinder
composer require nao-pon/elfinder-flysystem-driver-ext
composer require nao-pon/flysystem-google-drive:~1.1
// Load composer autoloader require 'vender/autoload.php'; // Google API Client $client = new \Google_Client(); $client->setClientId('xxxxx CLIENTID xxxxx'); $client->setClientSecret('xxxxx CLIENTSECRET xxxxx'); $client->refreshToken('xxxxx REFRESH TOKEN xxxxx'); // Google Drive Adapter $googleDrive = new \Hypweb\Flysystem\GoogleDrive\GoogleDriveAdapter( new \Google_Service_Drive($client), // Client service 'root', // Folder ID as root ('root' or Folder ID) [ 'useHasDir' => true ] // options (elFinder need hasDir method) ); // Extended cached strage adapter class for cache enabled of hasDir() method class myCachedStrageAdapter extends \League\Flysystem\Cached\Storage\Adapter { use \Hypweb\Flysystem\Cached\Extra\Hasdir; use \Hypweb\Flysystem\Cached\Extra\DisableEnsureParentDirectories; } // Make Flysystem adapter and cache object $useCache = true; if ($useCache) { // Example to Flysystem cacheing $cache = new myCachedStrageAdapter( new \League\Flysystem\Adapter\Local('flycache'), 'gdcache', 300 ); // Flysystem cached adapter $adapter = new \League\Flysystem\Cached\CachedAdapter( $googleDrive, $cache ); } else { // Not use cached adapter $cache = null; $adapter = $googleDrive; } // Google Drive elFinder Volume driver $gdrive = [ // require 'driver' => 'FlysystemExt', 'filesystem' => new \League\Flysystem\Filesystem($adapter), 'fscache' => $cache, 'separator' => '/', // optional 'alias' => 'GoogleDrive', 'rootCssClass' => 'elfinder-navbar-root-googledrive' ]; // elFinder volume roots options $elFinderOpts = [ 'roots' => [] ]; $elFinderOpts['roots'][] = $gdrive; // run elFinder $connector = new elFinderConnector(new elFinder($elFinderOpts)); $connector->run();
Tips
TODO
- Unit tests to be written
diecoding/flysystem-google-drive 适用场景与选型建议
diecoding/flysystem-google-drive 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.26k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 10 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 diecoding/flysystem-google-drive 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 diecoding/flysystem-google-drive 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4.26k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 20
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-10-18