7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Cloud Storage を PHPで。

Last updated at Posted at 2018-01-25

メモ
・自分の場合はGCP用に複数アカウント作っているので、projcectIdに注意

#はじめに

・コンテナ作成、公開は管理画面から
・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/...

って感じで直接リンクを貼った方が良い。

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

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

default.conf

server {

listen 443 ssl http2;
listen [::]:443 ssl http2;

//略

    location ^~/gcp_storage/ {
        proxy_pass https://storage.googleapis.com/your_bucket/;
    }


}

設定したら service nginx restart 忘れずに。

以上で完了

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?