使用Amazon S3流包装器非常简单:
include dirname(__FILE__) . '/aws.phar';
$baseDirectory = dirname(__FILE__) .'/'.$myDirectoryName;
$client = \Aws\S3\S3Client::factory(array(
'key' => "",
'secret' => ""
));
$client->registerStreamWrapper();
$bucket = 's3://mys3bucket/' . $myDirectoryName
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($bucket),
RecursiveIteratorIterator::SELF_FIRST
);
foreach($iterator as $name => $object) {
if ($object->getFileName() !== '.' && $object->getFileName() !== '..') {
$relative = substr($name,strlen($bucket)+1);
if (!file_exists($baseDirectory . '/' . $path . '/' . $relative)) {
if ($object->isDir()) {
mkdir($baseDirectory . '/' . $path . '/' . $relative, 0777, true);
} else {
file_put_contents(
$baseDirectory . '/' . $path . '/' . $relative,
file_get_contents($name)
);
}
}
}
}