/** * Recieves all configuration values and sets up this instance * * All configuration should be handled here * * @param array $config */ protected function configure($config) { // Configurable instance variables (if not set, use the instance default) $this->debug = isset($config['enable-debug-mode']) ? $config['enable-debug-mode'] : $this->debug; $this->folderIcon = $config['icons']['path'] . $config['icons']['directory']; $this->bucket = isset($config['s3-bucket']) ? $config['s3-bucket'] : $this->bucket; $this->rootDirectory = isset($config['doc_root']) ? trim($config['doc_root'], '/ ') : $this->rootDirectory; $this->createRootDir = isset($config['create-root-dir']) ? $config['create-root-dir'] : $this->createRootDir; $this->domain = isset($config['s3-public-domain']) ? $config['s3-public-domain'] : $this->domain; $this->cacheScheme = isset($config['aws-cache-scheme']) ? $config['aws-cache-scheme'] : $this->cacheScheme; $this->cacheExpire = isset($config['aws-cache-expirein']) ? $config['aws-cache-expirein'] : $this->cacheExpire; $this->uploadMaxMb = isset($config['upload']['size']) ? (int) $config['upload']['size'] : $this->uploadMaxMb; // if we are in debug mode, auto-expire cache $this->cacheExpire = $this->debug ? self::DEFAULT_CACHE_EXPIRE : $this->cacheExpire; // set global static credentials CFCredentials::set(array('@default' => array('key' => $config['aws-access-key'], 'secret' => $config['aws-secret-key'], 'default_cache_config' => $this->cacheScheme, 'certificate_authority' => false))); // Instantiate the AmazonS3 class (we should probably be injecting this) $this->s3 = new AmazonS3(); // if we are in debug mode put the http-client into debug mode $this->s3->enable_debug_mode($this->debug); }