[PHP] AWS S3にファイルをアップロード、S3のファイルを削除する方法
PHPを使用してAWS S3にファイルをアップロード、S3のファイルを削除する方法は以下の通り
AWS S3のバケット作成とcomposerのインストールは完了しているものとする
composerでAWS SDKをインストールする
composer require aws/aws-sdk-php
目次
AWS S3にファイルをアップロード
$s3client->putObjectでアップロードできる
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$file = "アップロードしたいファイルパス";
$pathData = pathinfo( $file ); //ファイル情報取得、あとで拡張子を追加するときに使用する
$name = "アップロードした後のファイル名(S3上のフォルダにアップロードしたい場合はフォルダ名も)"; //例: "fugafolder/hogehoge.txt"
$myKey = $name.".".$pathData["extension"]; //拡張子はオリジナルデータと同じにしている
uploadS3($file,$myKey);
function uploadS3($file,$myKey){
$s3client = S3Client::factory([
'credentials' => [
'key' => "アクセスキー",
'secret' => 'シークレットキー',
],
'region' => 'ap-northeast-1', //AWSリージョン
'version' => 'latest',
]);
//注意:Public-readになるので適宜変更すること
$s3client->putObject([
'Bucket' => "バケット名",
'Key' => $myKey,
'SourceFile' => $file,
'ContentType' => mime_content_type($file),
'ACL' => 'public-read'
]);
return true;
}
AWS S3のファイルがあるか確認
$s3client->doesObjectExistでファイル存在を確認できる
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$myFile = "フォルダも含めたファイル名";
if(checkS3($myFile)){
echo "S3にファイルがあります";
}else{
echo "S3にファイルはありません";
}
//S3のファイル削除関数
function checkS3($myKey){
$backet = "バケット名";
$s3client = S3Client::factory([
'credentials' => [
'key' => "アクセスキー",
'secret' => 'シークレットキー',
],
'region' => 'ap-northeast-1', //AWSリージョン
'version' => 'latest',
]);
if( !$s3client->doesObjectExist($backet, $myKey) ){
return false;
} else {
return true;
}
}
AWS S3のファイルを削除
$s3client->deleteObjectで削除できる
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$myFile = "フォルダも含めたファイル名";
deleteS3($myFile);
//S3のファイル削除関数
function deleteS3($myKey){
$backet = "バケット名";
$s3client = S3Client::factory([
'credentials' => [
'key' => "アクセスキー",
'secret' => 'シークレットキー',
],
'region' => 'ap-northeast-1', //AWSリージョン
'version' => 'latest',
]);
if( !$s3client->doesObjectExist($backet, $myKey) ){
//エラー処理
} else {
$s3_delete = $s3client->deleteObject([
'Bucket' => $backet,
'Key' => $myKey,
]);
}
return true;
}