laravel-google-cloud-storage, 用于 Laravel的Google云存储 文件系统

分享于 

5分钟阅读

GitHub

  繁體
A Google Cloud Storage filesystem for Laravel
  • 源代码名称:laravel-google-cloud-storage
  • 源代码网址:http://www.github.com/Superbalist/laravel-google-cloud-storage
  • laravel-google-cloud-storage源代码文档
  • laravel-google-cloud-storage源代码下载
  • Git URL:
    git://www.github.com/Superbalist/laravel-google-cloud-storage.git
    Git Clone代码到本地:
    git clone http://www.github.com/Superbalist/laravel-google-cloud-storage
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/Superbalist/laravel-google-cloud-storage
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    laravel-google-cloud-storage

    用于Laravel的Google云存储文件系统。

    这个包是一个包装器,将 flysystem-google-storage桥接成Laravel作为可用的存储磁盘。

    安装

    composer require superbalist/laravel-google-cloud-storage

    在app.php中注册服务提供者

    'providers'=> [// ...SuperbalistLaravelGoogleCloudStorageGoogleCloudStorageServiceProvider::class,]

    将新磁盘添加到filesystems.php配置

    'gcs'=> ['driver'=>'gcs','project_id'=> env('GOOGLE_CLOUD_PROJECT_ID', 'your-project-id'),'key_file'=> env('GOOGLE_CLOUD_KEY_FILE', null), // optional: /path/to/service-account.json'bucket'=> env('GOOGLE_CLOUD_STORAGE_BUCKET', 'your-bucket'),'path_prefix'=> env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', null), // optional: /default/path/to/apply/in/bucket'storage_api_uri'=> env('GOOGLE_CLOUD_STORAGE_API_URI', null), // see: Public URLs below],

    认证

    Google客户端使用几种方法进行Google API身份验证。

    如果在磁盘配置中指定一个key_file,使用json凭证文件。

    如果设置了GOOGLE_APPLICATION_CREDENTIALS env var,它使用

    putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');

    然后尝试从'已知路径'加载密钥文件:

    • Windows:%APPDATA%/gcloud/application_default_credentials.json
    • 其他:$HOME/.config/gcloud/application_default_credentials.json

    如果在Google App Engine中运行,使用与应用程序关联的service帐户。

    如果运行在Google Compute Engine中,使用与虚拟机实例关联的service帐户。

    公共URL

    适配器实现一个getUrl($path)方法,这个方法返回文件的公共url。

    注:Laravel 5.2和更高版本可用的方法,如果在5.1上使用,它引发异常。

    $disk=Storage::disk('gcs');$url=$disk->url('folder/my_file.txt');>>>http://storage.googleapis.com/bucket-name/folder/my_file.txt

    如果在配置中配置path_prefix

    $disk=Storage::disk('gcs');$url=$disk->url('folder/my_file.txt');>>>http://storage.googleapis.com/bucket-name/path-prefix/folder/my_file.txt

    如果在配置中配置自定义storage_api_uri

    $disk=Storage::disk('gcs');$url=$disk->url('folder/my_file.txt');>>>http://your-custom-domain.com/bucket-name/path-prefix/folder/my_file.txt

    对于自定义域(存储api uri ),你需要配置指向storage.googleapis.com的CNAME DNS条目。

    有关进一步的说明,请参阅https://cloud.google.com/storage/docs/xml-api/reference-uris#cname

    用法

    $disk=Storage::disk('gcs');// create a file$disk->put('avatars/1', $fileContents);// check if a file exists$exists=$disk->exists('file.jpg');// get file modification date$time=$disk->lastModified('file1.jpg');// copy a file$disk->copy('old/file1.jpg', 'new/file1.jpg');// move a file$disk->move('old/file1.jpg', 'new/file1.jpg');// get url to file$url=$disk->url('folder/my_file.txt');// See https://laravel.com/docs/5.3/filesystem for full list of available functionality

    文件  files    Laravel  存储  云存储