AWS S3 PHP脚本在从SSH运行时有效,但在浏览器中无法运行

时间:2014-07-16 14:37:18

标签: php amazon-web-services amazon-s3

我有一个链接到我的AWS S3服务的脚本。它是一个测试脚本,用于创建随机存储桶并将文本文件放入存储桶中。

通过SSH执行时 [root @html] php ./sample.php

它执行没有错误,存储桶是创建的,文件是在存储桶中创建的。

然而,当我尝试通过浏览器运行时,它会在命令行之前停止创建存储桶,并且脚本似乎突然结束。浏览器不显示任何错误消息。

我不确定我错过了什么。我尝试过Safari,IE 9,Chrome和Firefox。所有都给出了类似的结果。

以下是上面提到的脚本,

<?php
// Include the SDK using the Composer autoloader
require 'vendor/autoload.php';

use Aws\S3\S3Client;
$client = S3Client::factory();

$bucket = uniqid("php-sdk-sample-", true);
echo "Creating bucket named {$bucket}\n";     <--- This line displayed when run from browser 
$result = $client->createBucket(array('Bucket' => $bucket));

// Wait until the bucket is created
$client->waitUntilBucketExists(array('Bucket' => $bucket));


$key = 'hello_world.txt';
echo "Creating a new object with key {$key}\n";
$result = $client->putObject(array(
    'Bucket' => $bucket,
    'Key'    => $key,
    'Body'   => "Hello World!"));


echo "Downloading that same object:\n";
$result = $client->getObject(array(
    'Bucket' => $bucket,
    'Key'    => $key));

echo "\n---BEGIN---\n";
echo $result['Body'];
echo "\n---END---\n\n";

?>

1 个答案:

答案 0 :(得分:0)

您是否加载了任何PHP CLI模块,这些模块可以从命令行运行,但不能从您的Web服务器运行? 或者可能是您在命令行环境变量中设置了适用于S3Client的AWS凭据,因此在构建S3Client时必须手动输入它们?