AWSのS3をPHPで操作してファイルのやり取りをしたい。
色々調べてみると、どうやらいつものストリーム系の関数で操作できるらしい。楽だー!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php //事前にSDKをダウンロードしてサーバに置く。 require_once './aws/aws-autoloader.php'; use Aws¥S3¥S3Client; use Aws¥Exception¥AwsException; //keyとsecretは事前に準備しておく。 $client = new S3Client([ 'version' => 'latest', 'region' => 'ap-northeast-1', 'credentials' => [ 'key' => 'XXXXX', 'secret' => 'XXXXXXXXXX', ], ]); //ストリームで操作できるようにする。 $client->registerStreamWrapper(); //読み込み。 $contents = file_get_contents('s3://your-s3-name/test/test.txt'); var_dump($contents); //書き込み。ディレクトリは勝手に再帰的に作成してくれる。 file_put_contents('s3://your-s3-name/test/test.txt', 'テストメッセージ'); //もちろんファイルポインタで操作してもOK。 $fp = fopen('s3://your-s3-name/test/abc.txt', 'w'); fwrite($fp, 'テスト本文'); fclose($fp); //ディレクトリ操作。 $entries = scandir('s3://your-s3-name/testdir'); foreach ($entries as $entry) { echo $entry."¥n"; } |
コメント