PHPからAmazon S3を使う

Amazon S3の基本的な使い方

Amazon S3の基本的な使い方を勉強したので、まとめておきます。

ライブラリがAmazonから提供されているので、実際にはこれを使えば簡単です。

むしろ、Amazon S3に登録するところの方が面倒だったかも?

AWS SDK for PHPをダウンロード

まずは、AWS用のライブラリをダウンロードします。(AWSはAmazon Web Serviceの略)

AWS SDK for PHP

中のファイルは、お好みの場所に配置してください。大事なのは、sdk.class.phpというファイルです。

設定

ライブラリのインクルードと、AWSの設定が必要です。

require_once (‘sdk.class.php’);
define(‘AWS_KEY’, ‘xxxxxxxxxxxxxxxxxxxx’);
define(‘AWS_SECRET_KEY’, ‘xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx’);

AWSのキーとシークレットキーは、AWSアカウントページの「セキュリティ証明書」から取得できます。(最初から用意されているのでコピペするだけです)

バケットの作成

バケットというのは、S3のデータを実際に入れておく場所です。

これを最初に作成しておかなければなりません。

$s3 = new AmazonS3();
$s3->create_bucket(“katty-practice”);

こうすると、katty-practiceというバケットが作成されて、そこにデータを入れられるようになります。

入れたデータは、次のようなURLでアクセスできるようになります。

https://katty-practice.s3.amazonaws.com/test.jpg

ただし、バケット名は、AWSの全ユーザーに対してユニークでなければなりません。(上のようなURLを使うことを考えれば自然です)

したがって、今、上のコードを実行しても、katty-practiceは既に使用済みで使えません。他のバケット名を指定してください。

ファイルのアップロード

バケットを作成したら、次はファイルをアップロードしましょう。

$s3->create_object(“katty-practice“, “cloud_test.jpg“, array(‘fileUpload’=>”local_test.jpg“, ‘acl’=>AmazonS3::ACL_PUBLIC));

このようなプログラムを実行すると、katty-practiceというバケットに、cloud-test.jpgという名前で、local_test.jpgというファイルを、全体公開の状態(ACL_PUBLIC)で公開できます。

Amazon S3で簡単にアクセス制限をかける方法

ローカルPCのファイルをAmazon S3にアップロードする方法、簡単なアクセス制限をかける方法も書きました。

Amazon S3で簡単にアクセス制限をかける方法を参照してみてください。

コメント

タイトルとURLをコピーしました