tokisabaのブログ

エンジニア系シェアハウスEngineMakerの管理人ブログ

vagrant:PHP7:aws:s3:doesBucketExist/doesObjectExist で常に false になる

vagrant環境でテストしているときにawsのs3にあるファイルとバケットがあるかどうかを確認できる以下のメソッドを使ってみたが、何故かfalseしか帰って来ない。

$result = $s3->doesBucketExist($bucket); 
$result = $s3->doesObjectExist($bucket], $path); 

getObject()は動いていたので

$auth =  [
    'key' => getenv('AWS_ACCESS_KEY_ID') ,
    'secret' => getenv('AWS_SECR ET_ACCESS_KEY'),
    "region" => "ap-northeast-1",
     'version' => 'latest', 
]; 

$s3 = S3Client::factory($auth);
$s3_result = $s3->getObject( [
    'Bucket' => $bucket,
    'Key' => $path,
]);

とか、書いて試してみたら

Error executing "GetObject" on "https://s3.ap-northeast-1.amazonaws.com/バケット名/キー"; AWS HTTP error: cURL error 6: Could not resolve host: s3.ap-northeast-1.amazonaws.com; Unknown error (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

というエラーがでて、そんなわけ無いだろ…と思って確認しようとしたら、vagrant上のapacheは普通に生きてて、ブラウザで動作確認はできるのに、vagrant自体が半分死んでてssh接続できなくなってたので再起動したら、普通に使えるよになった。無駄にはまったので、メモを残しておく。