AWS S3 PHP脚本在从SSH运行时工作,但在浏览器中不工作


AWS S3 PHP script works when run from SSH but not when in browser

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

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

执行没有错误,桶被创建,文件被创建在桶中。

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

我不知道我错过了什么。我试过Safari、ie9、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";
?>

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

相关文章: