smadia / laravel-google-drive-connector
用于Laravel的Google Drive API连接器
0.0.2
2017-10-29 13:55 UTC
Requires
- laravel/framework: >=5.2
- nao-pon/flysystem-google-drive: ~1.1
This package is not auto-updated.
Last update: 2024-09-20 02:13:31 UTC
README
0.0.2
安装
确保您已经安装了laravel >= 5.2.*
然后,使用composer安装包
composer require "smadia/laravel-google-drive-connector:0.0.*"
在config/app.php中注册外观
'aliases' => [
.....
'LGD' => Smadia\LaravelGoogleDrive\Facades\LaravelGoogleDrive::class
.....
]
在config/app.php中注册服务提供者
'providers' => [
.....
Smadia\LaravelGoogleDrive\Providers\LaravelGoogleDriveServiceProvider::class
.....
]
您可以手动创建自己的外观和服务提供者,然后进行注册。
配置
在使用包之前,确保您已经在config/filesystem.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'),
],
// ...
],
然后,您应该在.env文件中添加新的字段
FILESYSTEM_CLOUD=googledrive GOOGLE_DRIVE_CLIENT_ID=xxx.apps.googleusercontent.com GOOGLE_DRIVE_CLIENT_SECRET=xxx GOOGLE_DRIVE_REFRESH_TOKEN=xxx GOOGLE_DRIVE_FOLDER_ID=null
如何获取Google Drive API?请遵循以下链接
用法
非对象文件中的用法
您可以在非对象文件中使用LGD外观,例如routes/web.php、blade文件。以下是非对象文件中的示例用法
LGD::dir('mydir')->ls()->toObject();
如果您在对象上下文中使用外观,则应在以下namespace声明之后使用Smadia\LaravelGoogleDrive\Facades\LaravelGoogleDrive
<?php namespace App\User; // other use declaration use Smadia\LaravelGoogleDrive\Facades\LaravelGoogleDrive; // other use declaration
之后,您可以使用LaravelGoogleDrive外观代替LGD如下所示
LaravelGoogleDrive::ls()->toArray()
如果您只想使用LGD关键字,则可以在use声明中使用as,如下所示
<?php namespace App\User; // other use declaration use Smadia\LaravelGoogleDrive\Facades\LaravelGoogleDrive as LGD; // other use declaration
从您的根目录获取内容列表
LGD::ls()->toArray()
获取特定的目录
LGD::dir('mydir')->ls()->toArray()
如果您有两个或更多同名项,则获取特定的索引
索引从0(零)开始
LGD::dir('mydir, 2)->ls()->toArray()
在特定目录中获取特定文件
LGD::dir('mydir')->file('youfile', 'txt')->name
您可以通过添加索引来获取文件(如果您有两个或更多同名文件)
LGD::dir('mydir')->file('yourfile', 'txt', 2)->name
获取其他文件的属性
以下是从file()方法添加->(property)后可以获取的文件属性列表
- name
- extension
- path
- dirname
- basename
- size
- timestamp
- mimetype(仅适用于文件类型)
- type
筛选
要筛选目录的内容列表,可以使用filter()方法
LGD::ls(function($ls) {
return $ls->where('type', '=', 'dir'); // another option of 'type' is 'file'
})->toArray();
文件存储
以下是将文件存储在Google Drive中的示例
LGD::put('hello.txt', 'Hello World !');
如果您想在控制器中存储上传的文件,可以使用这个
LGD::put('hello.txt', file_get_contents($request->file('file')->getRealPath()));
如果您想文件名与原始上传文件相同,可以将$request->file()作为参数分配
LGD::put($request->file('file'));
目录方法
以下是对您的目录的扩展方法