Вход Регистрация
Файл: adultscript-2.0.3-pro/files/modules/video/helpers/s3.php
Строк: 82
<?php
defined
('_VALID') or die('Restricted Access!');
class 
VHelper_video_s3
{
    private static 
$s3 = array();
    public static function 
upload($local$remote)
    {
        static::
connect();
    
        if (static::
$s3['instance']->putObjectFile($local, static::$s3['bucket'], $remoteS3::ACL_PUBLIC_READ)) {
            
$info = static::$s3['instance']->getObjectInfo(static::$s3['bucket'], $remote);
            if (!empty(
$info) && is_array($info) && isset($info['size'])) {
                if (
$info['size'] === filesize($local)) {
                    return 
TRUE;
                }
            }
        }
        
        return 
FALSE;
    }
    
    public static function 
download($remote$local)    
    {
        static::
connect();
        if (static::
$s3['instance']->getObjectInfo(static::$s3['bucket'], $remote)) {
            if (static::
$s3['instance']->getObject(static::$s3['bucket'], $remote$local)) {
                return 
true;
            }
        }
        
        return 
false;
    }
    
    public static function 
delete($remote)
    {
        static::
connect();
        
        if (static::
$s3['instance']->getObjectInfo(static::$s3['bucket'], $remote)) {
            return static::
$s3['instance']->deleteObject(static::$s3['bucket'], $remote);
        }
        
        return 
FALSE;
    }

    public static function 
process_upload($video_id$flv$mp4$mp4_hd$mobile$conv)
    {
        
$uploaded    true;
    
        if (
$flv) {
            
$dst_flv    MEDIA_DIR.'/videos/flv/'.$video_id.'.flv';
            if (static::
upload($dst_flv'/flv/'.$video_id.'.flv')) {
                  
$conv->log('Uploaded FLV to Amazon S3!');
            } else {
                  
$uploaded false;
                
$conv->log('Failed to upload FLV to Amazon S3!');
            }
        } else {
            
$conv->log('FLV not processed!');
        }

        if (
$mp4) {
              
$dst_mp4    MEDIA_DIR.'/videos/mp4/'.$video_id.'.mp4';
              if (static::
upload($dst_mp4'/mp4/'.$video_id.'.mp4')) {
                
$conv->log('Uploaded MP4 to Amazon S3!');
            } else {
                  
$uploaded false;
                
$conv->log('Failed to upload MP4 to Amazon S3!');
            }
        } else {
            
$conv->log('MP4 not processed!');
        }
        
        if (!
$uploaded) {
              return 
false;
        }
                    
        if (
$mp4_hd) {
              
$dst_mp4_hd    MEDIA_DIR.'/videos/mp4/'.$video_id.'_hd.mp4';
            if (static::
upload($dst_mp4_hd'/mp4/'.$video_id.'_hd.mp4')) {
                
$conv->log('Uploaded MP4 HD to Amazon S3!');
            } else {
                  
$uploaded false;
                
$conv->log('Failed to upload MP4 HD to Amazon S3!');
            }
        } else {
            
$conv->log('MP4 HD not processed!');
        }
                        
        if (
$mobile) {
              
$dst_mobile MEDIA_DIR.'/videos/mobile/'.$video_id.'.mp4';
            if (static::
upload($dst_mobile'/mobile/'.$video_id.'.mp4')) {
                
$conv->log('Uploaded mobile to Amazon S3!');
            } else {
                
$conv->log('Failed to upload Mobile to Amazon S3!');
            }
        }
        
        if (
$uploaded) {
              if (
$flv) {
                  
VFile::delete($dst_flv);
              }
              
              
VFile::delete($dst_mp4);

              if (
$mp4_hd) {
                  
VFile::delete($dst_mp4_hd);
              }
              
              
VFile::delete($dst_mobile);
        }
        
        return 
$uploaded;                    
    }
    

    private static function 
connect()
    {
        
VLog::write('Initializing S3!');
    
        if (!isset(static::
$s3['instance'])) {
            static::
$s3['access_key']    = VF::cfg_item('module.video.s3_access_key');
            static::
$s3['secret_key']    = VF::cfg_item('module.video.s3_secret_key');
            static::
$s3['bucket']        = VF::cfg_item('module.video.s3_bucket');
        
            
VF::load('s3/s3');
            static::
$s3['instance'] = new S3(static::$s3['access_key'], static::$s3['secret_key']);
            if (!
is_resource(static::$s3['instance'])) {
                
VLog::write('Failed to initialize S3 object!');
            }
        }
    }
}
Онлайн: 0
Реклама