Wiki

Clone wiki

php-cloud-uploader / Home

Overview

This library is a tiny implementation to use cloud storage services as your own CDN.

It supports the following services.

  • Amazon S3
  • Amazon S3 + CloudFront
  • Windows Azure Blob Storage
  • Windows Azure Blob Storage + CDN

Requirement

  • PHP 5.1+
  • PHP cURL module or PEAR HTTP_Request installed
  • PHP hash_hmac function enabled or PEAR Crypt_HMAC2 installed

Usage

The following example code uploads your local file to cloud storage and verifies.

Amazon S3

<?php
require('Cloud/Uploader.php');

$uploader = new Cloud_Uploader_AmazonS3( 'KEY ID', 'SECRET', 'BUCKET', 'URL BASE' );
// Examples:
// KEY ID: 0PP2..
// SECRET: 07Qs..
// BUCKET: cloud-uploader-test
// URL BASE: http://cloud-uploader-test.s3.amazonaws.com/
// * If you use cloud front, set the root url.

$requests = array();
$requests []= new Cloud_Uploader_UploadRequest( 'path/to/remote/file', 'path/to/local/file', 'content-type' );
// content-type: Like image/jpeg, text/css, text/javascript, ...

$uploader->upload($requests);

Windows Azure Blob Storage

<?php
require('Cloud/Uploader.php');

$uploader = new Cloud_Uploader_AzureBlob( 'ACCOUNT', 'ACCESS KEY', 'CONTAINER', 'URL BASE' );
// Examples:
// ACCOUNT: miyanaga
// ACCESS KEY: ugLn..
// BUCKET: static
// URL BASE: http://miyanage.blob.core.windows.net/static/
// * If you set CDN endpoint to the storage account, set the CND root url.

$requests = array();
$requests []= new Cloud_Uploader_UploadRequest( 'path/to/remote/file', 'path/to/local/file', 'content-type' );
// content-type: Like image/jpeg, text/css, text/javascript, ...

$uploader->upload($requests);

Examples

Skip verification

The 'upload' method has verification switch as second parameter.

$uploader->upload( $requests, false );

Use PEAR

If cURL functions or 'hash_hmac' function are not enabled, use PEAR instead.

// Use PEAR HTTP_Request instead of cURL.
$uploader = new Cloud_Uploader_AmazonS3( 'KEY ID', 'SECRET', 'BUCKET', 'URL BASE', 'HTTPRequest', 'builtin' );
// Use PEAR Crypt_HMAC2 instead of built-in hash_hmac.
$uploader = new Cloud_Uploader_AmazonS3( 'KEY ID', 'SECRET', 'BUCKET', 'URL BASE', 'cURL', 'CryptHMAC2' );

License

Licensed under The MIT License.

Updated