/** * Set options for the storage adapter. * * @param array $options */ public function __construct(array $options = array()) { $this->_options = $options; if (array_key_exists(self::AWS_KEY_OPTION, $options) && array_key_exists(self::AWS_SECRET_KEY_OPTION, $options)) { $awsKey = $options[self::AWS_KEY_OPTION]; $awsSecretKey = $options[self::AWS_SECRET_KEY_OPTION]; } else { throw new Omeka_Storage_Exception('You must specify your AWS access key and secret key to use the ZendS3 storage adapter.'); } if (!array_key_exists(self::BUCKET_OPTION, $options)) { throw new Omeka_Storage_Exception('You must specify an S3 bucket name to use the ZendS3 storage adapter.'); } // Use Omeka_Http_Client to retry up to 3 times on timeouts $client = new Omeka_Http_Client(); $client->setMaxRetries(3); Zend_Service_Amazon_S3::setHttpClient($client); $this->_s3 = new Zend_Service_Amazon_S3($awsKey, $awsSecretKey); if (!empty($options[self::ENDPOINT_OPTION])) { $this->_s3->setEndpoint($options[self::ENDPOINT_OPTION]); } }