AWS SDK for PHPでAmazonS3を操作するサンプルコード

よく使うのでGistにあげておきました。 コピペしてお使いください。

<?php
require_once 'sdk.class.php';
$bucket = 'dqneo-jikken-'. time();
$s3 = new AmazonS3();
echo "=== create_bucket ===\n";
$s3->create_bucket($bucket, AmazonS3::REGION_APAC_NE1);
echo "=== create_object ===\n";
$s3->create_object($bucket, 'hoge.txt', array('body' => 'I am hoge'));
echo "created hoge.txt\n";
$s3->create_object($bucket, 'fuga.txt', array('body' => 'I am fuga'));
echo "created fuga.txt\n";
file_put_contents('/tmp/piyo.txt', 'I am piyo');
$s3->create_object($bucket, 'piyo.txt', array('fileUpload' => '/tmp/piyo.txt'));
echo "created piyo.txt\n";
echo "=== copy_object ===\n";
echo "copy hoge.txt => hoge_copied.txt ... ";
$res = $s3->copy_object(
array('bucket' => $bucket, 'filename' => 'hoge.txt'),
array('bucket' => $bucket, 'filename' => 'hoge_copied.txt')
);
echo ($res->isOK() ? 'OK' : 'NOT OK') , "\n";
echo "=== list_objects ===\n";
$res = $s3->list_objects($bucket);
foreach ($res->body->Contents as $obj) {
echo $obj->Key,"\n";
}
echo "=== delete_object ===\n";
$s3->delete_object($bucket, 'fuga.txt');
echo "deleted fuga.txt\n";
echo "=== get_object ===\n";
foreach (array('hoge.txt', 'fuga.txt' ,'piyo.txt', 'hoge_copied.txt') as $key) {
echo "get_object $key ... ";
$res = $s3->get_object($bucket, $key);
echo ($res->isOK() ? 'OK' : 'NOT OK') , "\n";
var_dump($res->header['etag'] ,$res->body);
echo "\n";
}
echo "=== delete_objects ===\n";
$res = $s3->delete_objects($bucket, array(
'objects' => array(
array('key' => 'hoge.txt'),
array('key' => 'piyo.txt'),
array('key' => 'hoge_copied.txt'),
),
'quiet' => true,
));
echo ($res->isOK() ? 'OK' : 'NOT OK') , "\n";
echo "=== delete_bucket ===\n";
$res = $s3->delete_bucket($bucket);
echo ($res->isOK() ? 'OK' : 'NOT OK') , "\n";
カテゴリ: