2015-03-31 59 views
3

我正在使用亞馬遜-php-sdk。在我的應用程序中,我接受來自表格的關鍵和祕密價值,並傳遞給Aws。這是我的代碼。Php - 亞馬遜S3如何檢查我的連接是否成功

<?php 
require 'aws-autoloader.php'; 
use Aws\S3\S3Client; 
try { 
    $s3Client = S3Client::factory(array(
     'key' => 'my key', 
     'secret' => 'my secret key' 
    )); 
} 
catch(S3Exception $e) { 

    echo 'Msg' . $e->getMessage(); 
} 
?> 
  1. 我如何檢查連接是否成功與否?
  2. 如何使用傳遞的鍵檢查已創建的對象,以便我不想再次創建該對象。只有當傳遞的鍵與已經創建的鍵不同時,我才需要創建該對象。
+0

http://docs.aws.amazon.com/aws-sdk-php/guide/latest/quick-start.html#detecting-and-handling-errors – Arunu 2015-03-31 06:40:18

+1

http://docs.aws.amazon.com /aws-sdk-php/v2/api/namespace-Aws.S3.Exception.html – Arunu 2015-03-31 06:51:34

+0

我已更新我的代碼。即使我給錯了鑰匙,它也沒有到達catch塊。 – binoy 2015-03-31 07:20:36

回答

9

正如Michael指出的那樣,您必須提出實際的請求來檢查連接.AWS不鼓勵任何不必要的驗證請求,這會影響應用程序的性能和使用費用。

但是,如果您需要驗證,則可以在存儲桶上使用ListBucketHEAD請求。

查看此最佳實踐article

require 'vendor/autoload.php';  
use Aws\S3\S3Client; 

try { 

// Instantiate the S3 client with your AWS credentials 
$s3Client = S3Client::factory(array(
    'credentials' => array(
     'key' => 'YOUR_AWS_ACCESS_KEY_ID', 
     'secret' => 'YOUR_AWS_SECRET_ACCESS_KEY', 
    ) 
)); 

$buckets = $s3Client->listBuckets(); 


} 
catch(Exception $e) { 

    exit($e->getMessage()); 
} 

要回答你的第二個question.You可以使用doesObjectExist函數返回一個布爾