public function initRepository()
 {
     require_once $this->getBaseDir() . "/aS3StreamWrapper/lib/wrapper/aS3StreamWrapper.class.php";
     if (!in_array("s3", stream_get_wrappers())) {
         $wrapper = new aS3StreamWrapper();
         $wrapper->register(array('protocol' => 's3', 'acl' => AmazonS3::ACL_OWNER_FULL_CONTROL, 'key' => $this->repository->getOption("API_KEY"), 'secretKey' => $this->repository->getOption("SECRET_KEY"), 'region' => $this->repository->getOption("REGION")));
     }
     if (is_array($this->pluginConf)) {
         $this->driverConf = $this->pluginConf;
     } else {
         $this->driverConf = array();
     }
     $path = $this->repository->getOption("PATH");
     $recycle = $this->repository->getOption("RECYCLE_BIN");
     ConfService::setConf("PROBE_REAL_SIZE", false);
     $wrapperData = $this->detectStreamWrapper(true);
     $this->wrapperClassName = $wrapperData["classname"];
     $this->urlBase = $wrapperData["protocol"] . "://" . $this->repository->getId();
     if ($recycle != "") {
         RecycleBinManager::init($this->urlBase, "/" . $recycle);
     }
 }
require './aS3StreamWrapper.class.php';
// YOU create aS3StreamWrapperTestSettings.php. It should
// look like this (use an S3 region that has read-after-write consistency, such as us-west-1):
//
// <?php
// $testCredentials = array('key' => 'your key id', 'secretKey' => 'your secret key', 'region' => 'us-west-1');
// $publicBucket = 'yourpublicbucket';
// $privateBucket = 'yourprivatebucket';
//
// ** DO NOT ** TEST WITH BUCKETS YOU CARE ABOUT! USE NEW BUCKET NAMES! This code may append additional strings
// to your bucket names to make more bucket names for tests of rename() and so on.
//
// If you don't have your keys yet, go make an Amazon Web Services account.
// Don't specify an acl setting as we test it both ways here.
require './aS3StreamWrapperTestSettings.php';
$wrapper = new aS3StreamWrapper();
// Files we make with this protocol default to private
$privateOptions = array_merge($testCredentials, array('protocol' => 's3private', 'acl' => AmazonS3::ACL_PRIVATE));
$wrapper->register($privateOptions);
// Files we make with this protocol default to public
$publicOptions = array_merge($testCredentials, array('protocol' => 's3public', 'acl' => AmazonS3::ACL_PUBLIC));
$wrapper->register($publicOptions);
$content = "This is some awesome content for you.";
$passCount = 0;
$failCount = 0;
echo "Cleaning up previous run\n";
@recursiveRemove("s3private://{$privateBucket}");
@recursiveRemove("s3public://{$publicBucket}");
@recursiveRemove("s3private://{$privateBucket}-aux");
@recursiveRemove("s3private://{$privateBucket}-aux2");
test(mkdir("s3private://{$privateBucket}"), true, "mkdir of private test bucket");
 /**
  * @return AmazonS3
  */
 protected function getAwsService()
 {
     return aS3StreamWrapper::getAWSServiceForProtocol("s3");
 }