/** * Fetches the file data. * * @param string $filename * @return string */ public function fetch($filename) { // return fopen($this->getUrl($filename), 'r'); $this->_initApi(); $obj = $this->_api->getObject($this->_config['bucket'] . $this->_getUri($filename)); if ($this->_config['gzip'] && $this->_gzipIsAllowedForFilename($filename)) { $unzipper = new Garp_File_Unzipper($obj); $obj = $unzipper->getUnpacked(); } return $obj; }
/** * 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")); }
/** * Get an item from the storage service. * * @TODO Support streams * * @param string $path * @param array $options * @return string */ public function fetchItem($path, $options = array()) { $fullPath = $this->_getFullPath($path, $options); try { if (!empty($options[self::FETCH_STREAM])) { return $this->_s3->getObjectStream($fullPath, $options[self::FETCH_STREAM]); } else { return $this->_s3->getObject($fullPath); } } catch (Zend_Service_Amazon_S3_Exception $e) { throw new Zend_Cloud_StorageService_Exception('Error on fetch: ' . $e->getMessage(), $e->getCode(), $e); } }
/** * Returns the content of the file * * @param Storage_Model_DbRow_File $model The file for operation * @param array $params */ public function read(Storage_Model_File $model) { $path = $this->_bucket . '/' . $model->storage_path; try { $response = $this->_internalService->getObject($path); if (!$response) { throw new Storage_Service_Exception('Unable to write file.'); } } catch (Exception $e) { throw $e; } return $response; }
/** * 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); }