[S3×AWS SDK for PHP] 통에서 가장 오래된 객체 가져오기
개요
S3 섹션에서 가장 오래된 객체의 샘플 코드 가져오기(메모)
코드
getOldest.php
<?php
// AWS SDK for PHPの読み込み
require_once('/usr/lib/vendor/autoload.php');
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
// アクセスキー、シークレットアクセスキーの設定
define('AWS_ACCESS_KEY_ID', 'xxxxxxxxxxxxxxxx');
define('AWS_SECRET_ACCESS_KEY', 'yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy');
// タイムゾーンの設定
date_default_timezone_set('Asia/Tokyo');
// バケット名、リージョンを設定
$bucket = 'zzzzzzzzzzzzzzz';
$region = 'ap-northeast-1';
$s3Client = new S3Client([
'region' => $region,
'version' => 'latest',
'credentials' => [
'key' => AWS_ACCESS_KEY_ID,
'secret' => AWS_SECRET_ACCESS_KEY,
],
]);
// バケット内のオブジェクト一覧を取得
$results = $s3Client->listObjects([
'Bucket' => $bucket
])['Contents'];
$objects = array();
// 取得したオブジェクトから必要な要素(キー = ファイル名、日付: ソート用)を取得
foreach ($results as $result) {
$lastModified = (array)($result["LastModified"]);
array_push($objects, ['file' => $result["Key"], 'date' => $lastModified["date"]]);
}
// 並び替えの基準(date)を取得
$dates = array_column($objects, 'date');
// 以下PHP5.4用
/*
$dates = [];
foreach($dates as $date) {
$dates[] = $objects['date'];
}
*/
// dateの昇順でソート
array_multisort($dates, SORT_ASC, $objects);
// dateのいちばん古いものを取得
try {
// dateのもっとも古いファイルをtmpディレクトリ下にDL
$result = $s3Client->getObject([
'Bucket' => $bucket,
'Key' => $objects[0]['file'],
'SaveAs' => './tmp/' . $objects[0]['file']
]);
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
참고 자료
Reference
이 문제에 관하여([S3×AWS SDK for PHP] 통에서 가장 오래된 객체 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/c_hero/articles/d67ed2149f68cb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)