CloudnのObjectStorageをAWS SDK for PHP 2 から操作してみました。
まずは、必要なライブラリのインストール。(検証はさくらのVPSで行いました。)
pear install aws/sdk pear channel-discover pear.amazonwebservices.com pear channel-discover guzzlephp.org/pear pear channel-discover pear.symfony.com
以下は、指定Bucket( 以下の場合 xxxx)内のファイルを羅列するだけの簡単なプログラムになります。ひとつ気をつけないといけないは、「baae_url」を「http://」から記載する必要があるところ。
アクセスキーとシークレットキーは契約している個々の情報に置き換えてください。
require_once("AWSSDKforPHP/aws.phar"); use Aws\Common\Aws; use Aws\Common\Enum\Region; use Aws\S3\Enum\CannedAcl; use Aws\S3\Exception\S3Exception; use Guzzle\Http\EntityBody; $access_key = 'access key'; $secret_key = 'secret key'; $end_point_url = 'http://str.cloudn-service.com'; $bucket = 'xxxx; try { // S3 $s3 = Aws::factory(array( 'key' => $access_key, 'secret' => $secret_key, 'base_url' => $end_point_url, ))->get('s3'); $info = new FInfo(FILEINFO_MIME_TYPE); $iterator = $s3->getIterator('listObjects',array( 'Bucket' => $bucket )); foreach ($iterator as $object) { echo $object['Key'] . "\n"; } } catch (S3Exception $e) { }
AWSで使っているものも簡単にCloudnに移植ができると思われます。さすが、ベンダーロックインフリーを歌っていることはあります。
AWSがトラフィック量によっては、月額コストが上がるのに対し、Cloudnは月額の上限が設定されているので、財布にもやさしいと思われます。(さくらのクラウドも月額上限があります。)
ファイルアップロードもputObjectでできるかと思われますが、次回。