websight/l5-google-cloud-storage
最新稳定版本:v2.0.0
Composer 安装命令:
composer require websight/l5-google-cloud-storage
包简介
Laravel 5 Flysystem Google Cloud Storage Service Provider
README 文档
README
Wraps cedricziel/flysystem-gcs in a Laravel 5.x compatible Service Provider.
Note:
This project doesn't support the deprecated p12 credentials format anymore.
If you rely on it, please use the 1.x versions.
Configuration
Dedicated credentials: Obtain json service account credentials of a dedicated CloudPlatform Service Account
or
Local authentication through gcloud: Log in locally on your machine through the gcloud command-line
utility.
-
Add the service provider to your application in
config/app.phpWebsight\GcsProvider\CloudStorageServiceProvider::class,
-
Add a disk to the
disksarray in config/filesystems.php'gcs' => [ // Select the Google Cloud Storage Disk 'driver' => 'gcs', // OPTIONAL: The location of the json service account certificate, see below // 'credentials' => storage_path('my-service-account-credentials.json'), // OPTIONAL: The GCP project id, see below // 'project_id' => 'my-project-id-4711', // The bucket you want this disk to point at 'bucket' => 'my-project-id-4711.appspot.com', ],
-
If Google Cloud Storage is the only
clouddisk, you may consider setting it as theclouddisk, so that you can access it likeStorage::cloud()->$operation()via'cloud' => 'gcs',in thefilesystems.phpconfig file.
Authentication and the different configuration options
Google Cloud Platform uses json credential files. For the use-case of this library, there are two different types that can easily confuse you.
- credentials type
userThis is the type of credentials that identifies you as a user entity, most likely when authenticated through thegcloudutility. Since this type of credentials identifies users and users can belong to more than one project, you need to specify theproject_idconfig option. The keys should automatically be detected through their well-known location. - credentials type
service_accountService Account credentials are for authorizing machines and / or individual services to Google Cloud Platform. AppEngine instances and GCE machines already have a service account pre-installed so you don't need to configure neitherproject_idnotcredentials, since service accounts carry the information to which project they belong.
When do I need to configure which option?
| Location | project_id |
credentials |
bucket |
|---|---|---|---|
| AppEngine (Standard & Flex) | detected automatically | detected automatically | needs to be set |
| Deployment to non-GCP machine | needs to be set | needs to be set | needs to be set |
| Local development with user credentials | needs to be set | detected automatically | needs to be set |
| Local development with service account | detected automatically | needs to be set | needs to be set |
Usage
Use it like any other Flysystem Adapter with the Storage-Facade.
$disk = Storage::disk('gcs'); // Put a private file on the 'gcs' disk which is a Google Cloud Storage bucket $disk->put('test.png', file_get_contents(storage_path('app/test.png'))); // Put a public-accessible file on the 'gcs' disk which is a Google Cloud Storage bucket $disk->put( 'test-public.png', file_get_contents(storage_path('app/test-public.png')), \Illuminate\Contracts\Filesystem\Filesystem::VISIBILITY_PUBLIC ); // Retrieve a file $file = $disk->get('test.png');
License
MIT
统计信息
- 总下载量: 61.88k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 39
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-11-27