AWS SDK for PHPのS3Clientを用いてGCP(Google Cloud Platform)を操作する方法

業務で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/で始まるファイルを取得している)