Memo

メモ > サーバ > サービス: AWS > AWS SDK(バージョン2)

■AWS SDK(バージョン2)
AWSのサービスをプログラムで操作できる AWS SDK for PHP https://aws.amazon.com/jp/sdk-for-php/ AWS SDK for PHP v2 で S3 にファイルをアップロード http://tetsuwo.tumblr.com/post/102677580377/aws-s3-image-upload 2015/12/09時点で、この方法ならPHPからS3にアップロードできた。 ■バージョン2の廃止 バージョン2は2019年6月24日に廃止されるので注意 できるだけ早くバージョン3に移行する 【超重要】対応しないと使えなくなるかも?!今、全S3ユーザがチェックすべき署名バージョン2の廃止について | DevelopersIO https://dev.classmethod.jp/cloud/aws/s3-sigv2-abolition/ 廃止予定のS3署名バージョン2によるアクセスを調査する方法まとめ | DevelopersIO https://dev.classmethod.jp/cloud/aws/how-to-check-s3-signature-ver2/ 入っているAWS SDK for PHPのバージョンを雑に調べる - Qiita https://qiita.com/inouet/items/83ae7bdedd5d7810232f …だったが、2019年6月15日になって延期された 2020年6月24日以降に作成された新しいバケットは対応が必要となるが、既存のバケットは引き続きそのまま使えるとのこと Amazon S3 アップデート - SigV2 の廃止時期、延期と変更 | Amazon Web Services ブログ https://aws.amazon.com/jp/blogs/news/amazon-s3-update-sigv2-deprecation-period-extended-modified/ S3の署名バージョン2(SigV2)の廃止スケジュールが延期、2020年6月以降も既存のS3バケットはSigV2が継続サポートとなりました!! | DevelopersIO https://dev.classmethod.jp/cloud/aws/s3-sigv2-deprecation-period-extended-20200624/ ■稼働中のEC2を取得する例
<?php require_once 'Aws/vendor/autoload.php'; use Aws\Common\Aws; try { //アクセスキーとシークレットアクセスキーとリージョンを指定して接続 $aws = Aws::factory(array( 'key' => 'XXXXX', 'secret' => 'YYYYY', 'region' => 'ap-northeast-1', )); $client = $aws->get('ec2'); //インスタンスの情報を取得 $result = $client->describeInstances(array( 'Filters' => array( array( 'Name' => 'instance-state-name', 'Values' => array('running'), ), ) )); //結果を出力 foreach ($result['Reservations'] as $reservation) { $instance = $reservation['Instances'][0]; echo 'InstanceId ... ' . $instance['InstanceId'] . '<br />'; echo 'PrivateIpAddress ... ' . $instance['PrivateIpAddress'] . '<br />'; echo '<hr />'; } } catch (Exception $e) { exit('Exception: ' . $e->getMessage()); }
■S3のファイルを取得する例
<?php require_once 'Aws/vendor/autoload.php'; use Aws\S3\S3Client; use Aws\S3\Exception\S3Exception; try { //アクセスキーとシークレットアクセスキーを指定して接続 $client = S3Client::factory(array( 'key' => 'XXXXX', 'secret' => 'YYYYY', )); //バケットとファイルを指定して取得 $result = $client->getObject(array( 'Bucket' => 'ZZZZZ', 'Key' => 'images/sample.jpg', )); //ファイルを表示 header('Content-Type: image/jpeg'); echo $result['Body']; exit; } catch (S3Exception $e) { exit('S3Exception: ' . $e->getMessage()); } catch (Exception $e) { exit('Exception: ' . $e->getMessage()); }

Advertisement