AWS SDK for PHP でS3のURIをパースする

sdk-icon-php

せーのです。

S3オブジェクトのURIは次のようなフォーマットです。

https://s3-ap-northeast-1.amazonaws.com/bucket-name/path/to/key

ところが、SDKを利用する場合、このようなURIからリージョン、バケット名などを取得する必要があります。 頑張ってパースせずに、S3UriParserクラスを利用しましょう。

S3UriParser

S3UriParserクラスは、名前の通りS3のURIをパースしてくれるクラスです。 パースメソッドを叩けば、結果が格納された配列にアクセス可能です。

require 'vendor/autoload.php';
use Aws\S3\S3UriParser;

$uri = "https://s3-ap-northeast-1.amazonaws.com/bucket-name/path/to/key";
$s3uri = new S3UriParser();
$ret = $s3uri->parse($uri);

echo $ret['region'].PHP_EOL; // => ap-northeast-1
echo $ret['bucket'].PHP_EOL; // => bucket-name
echo $ret['key'].PHP_EOL; // => path/to/key

まとめ

S3UriParserクラス便利ですね!

参考リンク

AWS Cloud Roadshow 2017 福岡