AWS SDK for PHP でS3のURIをパースする
せーのです。
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クラス便利ですね!