/** * (non-PHPdoc) * @ignore * @see \mithra62\Validate\RuleInterface::validate() */ public function validate($field, $input, array $params = array()) { try { if ($input == '' || empty($params['0'])) { return false; } $params = $params['0']; if (empty($params['s3_access_key']) || empty($params['s3_secret_key']) || empty($params['s3_bucket'])) { return false; } $local = new Remote(new Local(dirname($this->getTestFilePath()))); $client = m62S3::getRemoteClient($params['s3_access_key'], $params['s3_secret_key']); if ($client->doesBucketExist($params['s3_bucket'])) { $contents = $local->read($this->test_file); $filesystem = new Remote(new m62S3($client, $params['s3_bucket'])); if ($filesystem->has($this->test_file)) { $filesystem->delete($this->test_file); } else { if ($filesystem->write($this->test_file, $contents)) { $filesystem->delete($this->test_file); } } return true; } } catch (\Exception $e) { return false; } }
/** * (non-PHPdoc) * @ignore * @see \mithra62\Validate\RuleInterface::validate() */ public function validate($field, $input, array $params = array()) { try { if ($input == '' || empty($params['0'])) { return false; } $params = $params['0']; if (empty($params['s3_access_key']) || empty($params['s3_secret_key'])) { return false; } $client = m62S3::getRemoteClient($params['s3_access_key'], $params['s3_secret_key']); $client->listBuckets(); return true; } catch (\Exception $e) { return false; } }
/** * (non-PHPdoc) * @see \mithra62\Validate\RuleInterface::validate() * @ignore */ public function validate($field, $input, array $params = array()) { try { if ($input == '' || empty($params['0'])) { return false; } $params = $params['0']; if (empty($params['s3_access_key']) || empty($params['s3_secret_key']) || empty($params['s3_bucket'])) { return false; } $client = m62S3::getRemoteClient($params['s3_access_key'], $params['s3_secret_key']); if ($client->doesBucketExist($params['s3_bucket'])) { $filesystem = new Remote(new m62S3($client, $params['s3_bucket'])); $filesystem->getAdapter()->listContents(); return true; } } catch (\Exception $e) { return false; } }
/** * Returns the Filesystem object setup for work * @return \mithra62\BackupPro\Remote */ public function getFileSystem() { $client = m62S3::getRemoteClient($this->settings['s3_access_key'], $this->settings['s3_secret_key']); $options = array(); if ($this->settings['s3_reduced_redundancy'] == '1') { $options['StorageClass'] = 'REDUCED_REDUNDANCY'; } $adapter = new m62S3($client, $this->settings['s3_bucket'], $this->settings['s3_optional_prefix'], $options); $filesystem = new Remote($adapter); $filesystem->checkBackupDirs(); return $filesystem; }