2015-04-15 80 views
0

我在某種程度上失去了這裏,我是aws新人,所以我已經在myproject中安裝了aws-sdk-php,並且我正在測試上傳;這裏是一塊腳本代碼:爲什麼使用aws-sdk-php上傳文件時拒絕Acces?

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

// Instantiate an S3 client 
$s3 = S3Client::factory(array(
    'credentials' => array(
     'key' => 'key ... ', 
     'secret' => 'secret key ... ', 
    ) 
)); 
$file_name = $_FILES['file']['tmp_name']; 
try { 
    $s3->putObject(array(
     'Bucket' => 'bucket_name', 
     'Key' => $_FILES['file']['name'], 
     'Body' => fopen($file_name, 'r'), 
     'ACL' => 'public-read', 
    )); 
    echo " upload succed !!"; 
} catch (S3Exception $e) { 
    echo "There was an error uploading the file.\n"; 
    echo $e->getMessage() . "\n"; 
} 

這個代碼是從本地測試工作正常,但試圖做在一個文件夾中的S3項目測試相同的腳本時;我得到這個錯誤:

There was an error uploading the file. Access Denied 

任何想法PLZ? 謝謝。

+0

你檢查了你的權限嗎? –

+0

謝謝,我該如何檢查?因爲它不是誰控制訪問權限!我想了解從哪裏可以得到的錯誤.... – user3911183

回答

0

的問題是公網IP的限制。 但是,腳本是乾淨的,正確的。 謝謝。

0

嘗試創建實例如何:

$s3 = S3Client::factory(array(
     'key' => 'key', 
     'secret' => 'secret', 
     'region' => 'eu-west-1' 
    )); 

使用區域

+0

我已經創建它,它的提問中的問題.... – user3911183

+0

嘗試設置在工廠陣列沒有'憑據',看看我的例子 – dwaskowski

+0

好吧我'會嘗試...希望它的作品。 – user3911183

相關問題