我有一个链接到我的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";
?>
答案 0 :(得分:0)
您是否加载了任何PHP CLI模块,这些模块可以从命令行运行,但不能从您的Web服务器运行? 或者可能是您在命令行环境变量中设置了适用于S3Client的AWS凭据,因此在构建S3Client时必须手动输入它们?