GCPのCloud Strageにphpのクライアントライブラリを使用してファイルをアップロードする方法。
GCPサービスアカウントキーの作成
phpでGCPを扱う上でサービスアカウントキーを発行し認証を行う必要がある。
GCPの「APIとサービス」>「認証情報」から「認証情報を作成」を選択してサービスアカウントキーを発行する。キーの形式はJSONを選択。
役割はここでは「ストレージ管理者」を選択。
操作が完了するとキーファイルが端末にダウンロードされる。
phpでの実行
composerでGCPを扱うためのライブラリをインストールする。
$ composer require google/cloud
Cloud Strageの任意のバケットにファイルをアップロードするためのサンプルプログラム。
事前にGCPで取得したサービスアカウントキーファイルはcredential.jsonとして保存している。
<?php
require '../vendor/autoload.php';
$project_id = 'project_id';
$source = 'hoge.csv';
$bucket_name = 'test-bucket';
// 必要であればバケット内のフォルダを指定
$object_name = 'test/hoge.csv';
$storage = new \Google\Cloud\Storage\StorageClient([
'projectId' => $project_id,
'keyFile' => json_decode(file_get_contents('./credential.json'), true),
]);
$file = fopen($source, 'r');
$bucket = $storage->bucket($bucket_name);
$object = $bucket->upload($file, [
'name' => $object_name,
]);