#!/usr/bin/php
<?php
/**
* ./push-to-s3.php abc.tgz
*/
require_once('class.s3.php');
define('AWS_PUBLIC_KEY', 'YOUR_PUBLIC_KEY');
define('AWS_SECRET_KEY', 'YOUR_SECRET_KEY');
define('AWS_BUCKET', 'YOUR_BUCKET_NAME');
define('FROM_DIR', '/backup/'); // 從這個目錄拉檔案
define('TO_DIR', 'backup'); // 備份上去前面 key 的名字(可想像成目錄名)
$fname = isset($argv[1]) ? $argv[1] : false;
if (!$fname || !file_exists(FROM_DIR . $fname)) {
echo "File not found!\n";
exit;
}
$tname = TO_DIR . '/' . $fname;
$s3 = new S3(AWS_PUBLIC_KEY, AWS_SECRET_KEY);
//function putObject(AWS_CDN_BUCKET, '上傳上去的 路徑+檔名(key)', 'local filename', true);
//$result = $s3->putObject(AWS_BUCKET, $tname, $fname, true); // public
$result = $s3->putObject(AWS_BUCKET, $tname, $fname, false); // private
if (!$s3->isOk($result)) { // 確認資料是否上傳完成, 所有 function 確認, 都使用 isOK()
echo "Amazon backup $fname -> $tname failed";
}
/*
class function list:
class S3($key = null, $secret = null)
function directorySize($bucket, $prefix = "")
function recursiveDelete($bucket, $object)
function deleteObject($bucket, $object)
function putObject($bucket, $object, $filename, $public = null, $disposition = null)
function getObject($bucket, $object)
function downloadObject($bucket, $object, $saveTo)
function bucketExists($bucket)
function getBuckets()
function createBucket($bucket)
function deleteBucket($bucket, $force = false)
function isOk($result)
function objectExists($bucket, $object)
function getObjectHead($bucket, $object)
function getObjectInfo($bucket, $object)
function getBucketContents($bucket, $prefix = null, $delim = null, $marker = null)
function sendRequest($req, $params = null)
function signature($req)
function hasher($data)
function base64($str)
function sortKeys($keys, $first = null)
*/
?>