PHP
GoogleCloudPlatform

Google Cloud Storage を PHPで。

はじめに

・コンテナ作成、公開は管理画面から
・PHPではアップロードのみ
・アップロードしたものは一般公開
・バケットとは、フォルダみたいなもの
・asia-northeast が東京リージョン

GCPトップ
https://console.cloud.google.com/home/dashboard

アップロード先のバケットを作成

バケット作成まで

ストレージを選択
1.png

バケットを作成
2.png

バケットをみんな見れるように
3.png

メンバーに allUsers と入力し、 ストレージオブジェクト閲覧者を クリック
4.png

ここまでで、公開用バケットの用意完了

APIキーを取得

https://qiita.com/ngyuki/items/6c0782737ba327150c97
秘密鍵を作成してサーバーにアップロード(JSONファイルを取得するまでを参考に)

APIキーの準備OK

composer で ライブラリをインストール

適当にパスは変えてね。

php /var/www/html/composer.phar require google/cloud-storage

そして、PHPで。
プロジェクトIDはこのぺーじの一番上の画像に乗ってるよ。

<?php

use Google\Cloud\Storage\StorageClient;

class HogesController extends AppController
{


    public function test()
    {

#
        $projectId = 'project-id123456';

# Instantiates a client
        $storage = new StorageClient([
            'projectId' => $projectId,
            'keyFile' => json_decode(file_get_contents('/hoge/your_secret_key.json'), true)
        ]);

        $bucketName = 'your_bucket';

        $bucket = $storage->bucket($bucketName);

        $object = $bucket->upload(
            fopen('/img/your_upload_file.jpg', 'r')
        );

        pr($object);
        die;
        $this->autoRender = false;
    }


}



ファイルのアップロード先は
https://storage.googleapis.com/your_bucket/your_upload_file.jpg

になる。
また nginx のリバースプロキシを使えば独自ドメインみたいに表示可能。

以上で完了