Файл: 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'], $remote, S3::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!');
}
}
}
}