2011-03-29 52 views
1

我使用PHP S3類從無意中使用下面的語法把上傳的音頻文件到我的亞馬遜S3鬥 -如何判斷我的PHP S3類putObjectFile()過程是否已完成?

$s3 = new S3("awsAccessKey", "awsSecretKey"); 
$s3->putObjectFile(params); 

然後我的代碼繼續,並使用CURL調用另一個服務器來檢索S3文件並對音頻進行轉碼。

如何判斷putObject何時成功完成?我注意到轉碼過程可能會失敗,並且我認爲這是因爲文件尚未完成放入S3。我假設下一行代碼在putObject行完成之前不會被執行,我是否需要將其包裝在if($s3->putObjectFile(...)) { }

感謝

回答

1

你可以使用trycatch()

try 
{ 
    $s3 = new S3("awsAccessKey", "awsSecretKey"); 
    $s3->putObjectFile(params); 
} 
catch(Exception $e) 
{ 
    echo $e->getMessage(); 
} 
在功能

,那麼你會用

throw new exception('error, could not complete, ....'); 

如拋出錯誤:

if(!dosomething) //if something failed 
{ 
    throw new exception('error, could not complete, ....'); 
} 

使用此它會停止一旦拋出異常就執行代碼。然後你只是回聲出來,或者你可以將它存儲在一個變量,然後回聲出去,無論你想

+0

我不知道我明白這一點。我真的希望代碼等到$ s3-> putObjectFile()完成後繼續下一行代碼。所以 - if($ s3-> putObjectFile()){ //僅在putObjectFile()完成時執行此代碼。 } 但也許這是不可能的,如果putObjectFile()是異步的? – undefined 2011-03-30 16:34:31

相關問題