/** * Test creating object with https * * ZF-7029 */ public function testCreateObjectSSL() { $this->_amazon->setEndpoint('https://s3.amazonaws.com'); $this->assertEquals('https://s3.amazonaws.com', $this->_amazon->getEndpoint()->getUri()); $this->_amazon->createBucket($this->_bucket); $this->_amazon->putObject($this->_bucket . "/zftest", "testdata"); $this->assertEquals("testdata", $this->_amazon->getObject($this->_bucket . "/zftest")); }
/** * 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]); } }
/** * Move the dump file to a Amazon S3 bucket * * @param string $filename * @return void */ protected function moveDumpToS3($filename) { $s3Config = $this->config->s3; $this->validateS3Settings($s3Config); $s3File = $s3Config->aws_bucket . '/' . $filename; $this->writer->line('Copy ' . $filename . ' -> Amazon S3: ' . $s3File); $s3 = new Zend_Service_Amazon_S3($s3Config->aws_key, $s3Config->aws_secret_key); // use https for uploading $s3->setEndpoint('https://' . Zend_Service_Amazon_S3::S3_ENDPOINT); $s3->putObject($s3Config->aws_bucket . '/' . $filename, file_get_contents($filename)); $s3->getObject($s3Config->aws_bucket . '/' . $filename); }