2014-04-22 54 views
1

我试图执行作业,将代码转换器的视频文件...我有一个PHP文件:PHP亚马逊弹性转码器

<?php 
require 'vendor/autoload.php'; 

use Aws\ElasticTranscoder\ElasticTranscoderClient; 

// Create a service locator using a configuration file 
$client = ElasticTranscoderClient::factory(array(
     'key' => 'my key', 
     'secret' => 'my secret', 
     'region' => 'us-west-2', 
)); 

$result = $client->createJob(array(
     'PipelineId' => 'my pipeline id', 
     'Input' => array(
       'Key' => 'video.mp4', 
       'FrameRate' => 'auto', 
       'Resolution' => 'auto', 
       'AspectRatio' => 'auto', 
       'Interlaced' => 'auto', 
       'Container' => 'auto', 
     ), 
     'Output' => array(
       'Key' => 'output.mp4', 
       'ThumbnailPattern' => 'thumb{count}.jpg', 
       'Rotate' => 'auto', 
       'PresetId' => '1351620000001-000010', 
     ), 
)); 

?> 

,我把这个剧本就像transcoder.php

的事情是,如果我把这个从我的根从VPS像PHP transcoder.php它工作得很好,但如果我尝试从我的浏览器(Safari浏览器,浏览器,Firefox),我得到一个

Fatal error: Uncaught exception 'Aws\ElasticTranscoder\Exception\ElasticTranscoderException' in /home/my_user/public_html/test/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php:91 

Stack trace: 

#0 /home/my_user/public_html/test/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/NamespaceExceptionFactory.php(76): Aws\Common\Exception\NamespaceExceptionFactory->createException('Aws\ElasticTran...', Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Message\Response), Array) 

#1 /home/my_user/public_html/test/vendor/aws/aws-sdk-php/src/Aws/Common/Exception/ExceptionListener.php(55): Aws\Common\Exception\NamespaceExceptionFactory->fromResponse(Object(Guzzle\Http\Message\EntityEnclosingRequest), Object(Guzzle\Http\Message\Response)) 

#2 [internal function]: Aws\Common\Exception\ExceptionListener->onRequestError(Object(Guzzle\Common\Event), 'request.error', Object(Symfony\Component\EventDispatcher\EventDispatcher)) 

#3 /home/my_user/public_html/test/vendor/symfony/event-dispatcher/Symfony/Component/Even in /home/my_user/public_html/test/transcoder.php on line 35 
叫它

任何想法为什么它从根工作,为什么它不能从浏览器工作?我需要从浏览器访问它。

回答

1

尝试更改php.ini中有关curl和exec的设置,这就是为什么您没有权限从浏览器访问脚本,但是可以从根控制台运行。

0

首先,在代码周围放一个try/catch statement以查看将帮助诊断问题的整个错误消息。

我怀疑这是因为你传递的文件Key不存在,因为如果你在命令行vs apache上执行,工作目录可能会不同。

尝试指定video.mp4的完整路径,看看是否有效。

+0

来自Key的文件是来自亚马逊S3存储桶的文件...不是本地文件 – Catalin

+0

啊我的不好,无论哪种方式使用try/catch来获取完整的错误信息 – fire

+0

我编辑我的帖子,请再次检查,添加完整的消息 – Catalin