さくらのオブジェクトストレージをAWS SDK for PHP 2で
PHPからさくらのオブジェクトストレージを利用したくなり、AWS SDKを使えるか試したときのメモ。 AWS SDK for PHP v2 を使った。
list objects
composer.json
{ "require": { "aws/aws-sdk-php": "2.*" } }
list_objects.php
<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $client = S3Client::factory([ 'key' => '<<アクセスキー>>', 'secret' => '<<シークレットキー>>', 'base_url'=> 'https://b.sakurastorage.jp/', //コンパネに表示されるURLからバケット名を除いたもの ]); $iterator = $client->getIterator('ListObjects', [ 'Bucket' => '<<バケット名>>', ]); foreach ($iterator as $object) { echo $object['Key'] . "\n"; }
put object
put_object.php
<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $client = S3Client::factory([ 'key' => '<<アクセスキー>>', 'secret' => '<<シークレットキー>>', 'base_url'=> 'https://b.sakurastorage.jp/', //コンパネに表示されるURLからバケット名を除いたもの ]); $iterator = $client->getIterator('ListObjects', [ 'Bucket' => '<<バケット名>>', ]); foreach ($iterator as $object) { echo $object['Key'] . "\n"; } </pre>
get object
get_object.php
<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $client = S3Client::factory([ 'key' => '<<アクセスキー>>', 'secret' => '<<シークレットキー>>', 'base_url'=> 'https://b.sakurastorage.jp/', //コンパネに表示されるURLからバケット名を除いたもの ]); $result = $client->getObject([ 'Bucket' => '<<バケット名>>', 'Key' => 'data.txt' ]); echo get_class($result['Body']) . "\n"; echo $result['Body'] . "\n";
delete object
delete_object.php
<?php require 'vendor/autoload.php'; use Aws\S3\S3Client; $client = S3Client::factory([ 'key' => '<<アクセスキー>>', 'secret' => '<<シークレットキー>>', 'base_url'=> 'https://b.sakurastorage.jp/', //コンパネに表示されるURLからバケット名を除いたもの ]); $result = $client->deleteObject([ 'Bucket' => '<<バケット名>>', 'Key' => 'data.txt', ]); var_dump($result);
参考
http://aws.amazon.com/jp/developers/getting-started/php/ http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html http://cloud-news.sakura.ad.jp/wp-content/uploads/2015/01/ObjectStorage_API.pdf