コード例 #1
0
ファイル: Writable.php プロジェクト: hhgr/hhgolf
 /**
  * (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;
     }
 }
コード例 #2
0
ファイル: Connect.php プロジェクト: hhgr/hhgolf
 /**
  * (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;
     }
 }
コード例 #3
0
ファイル: Readable.php プロジェクト: hhgr/hhgolf
 /**
  * (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;
     }
 }
コード例 #4
0
ファイル: S3.php プロジェクト: hhgr/hhgolf
 /**
  * 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;
 }