業務でGCPを使うことがあったので備忘録として記録しておく。 ※随時更新
S3Clientのインストール(Composerを使用する)
以下のコマンドを入力
$ composer require aws/aws-sdk-php
クライアントを作成
require 'vendor/autoload.php'; use Aws\S3\S3Client; $s3 = new S3Client([ 'credentials' => [ 'key' => ACCESS_KEY, 'secret' => SECRET_KEY, ], 'version' => 'latest', 'region' => 'ap-northeast-1', 'endpoint' => END_POINT, ]);
各パラメータの解説 - key => アクセスキー - secret => シークレットキー - version => バケットのバージョニング(latest以外は'2023-04-01'のように日付形式で指定する) - region => 地域を指定する(「ap-northeast-1」で東京を示している) - endpoint => リクエストエンドポイント
ファイルをアップロード
// 事前にクライアントを作成しておく try { $s3_upload = $s3->putObject([ 'Bucket' => 'sample_bucket', 'Key' => 'public/img/' . date("YmdHis") . '.jpeg', 'SourceFile' => $file['tmp_name'], ]); } catch (S3Exception $e) { echo $e->getMessage(); exit; }
各パラメータの解説 - Bucket => バケット名(バケットとはクラウド上のフォルダのようなもの) - Key => アップロード後のファイル名 - SourceFile => アップロードしたいファイル
ファイルの一覧を取得
// 事前にクライアントを作成しておく try { $contents = $s3->listObjects([ 'Bucket' => 'sample_bucket', 'Prefix' => 'public/img/', ])['Contents']; } catch (S3Exception $e) { echo $e->getMessage(); exit; }
各パラメータの解説 - Bucket => バケット名 - Prefix => 取得するファイルの接頭辞(この例ではsample_bucket内のpublic/img/で始まるファイルを取得している)