如何使用AmazonS3SDK下载并执行桶中的php文件?

如何使用AmazonS3SDK下载并执行桶中的php文件?,php,amazon-web-services,amazon,Php,Amazon Web Services,Amazon,在Amazon中使用S3SDK连接bucket时,如何执行PHP文件 我尝试了$s3->getBucket,得到了以下数组。但是我需要这个文件的执行结果 Array ( [content/content.php] => Array ( [name] => content/content.php [time] => 1353105202 [size] => 1223

在Amazon中使用S3SDK连接bucket时,如何执行PHP文件

我尝试了
$s3->getBucket
,得到了以下数组。但是我需要这个文件的执行结果

Array
(
    [content/content.php] => Array
        (
            [name] => content/content.php
            [time] => 1353105202
            [size] => 1223
            [hash] => 355c51389b51814d4b6c822a6ec28cfe
        )

)

有什么函数/方法可以执行PHP文件吗?

您不能直接在AmazonS3上执行PHP文件

您需要做的是下载它的内容,将内容写入文件,然后运行文件本身(使用include()或require())

如果文件直接输出内容,可以将其包装在ob_start()和ob_get_clean()中以获得任何输出

$source = $s3->getObject($bucket, $object);

$filename = tempnam('/tmp');
$file = fopen($filename, 'w');
fwrite($file, $source);
fclose($file);

ob_start();
require_once $filename;
$result = ob_get_clean();

echo $result; // the result of the executed PHP.

您可能会使用类似于在本地文件系统中装入S3 bucket的东西,然后像包含任何其他文件一样包含该文件。

根据php上的allow\u url\u fopen和allow\u url\u include ini设置,这可以使用自定义流包装器实现。我们正在我们的一个项目中使用这样的东西。未授权共享代码,因为它具有知识产权。但它是基于

AmazonS3流包装器允许您使用内置PHP函数从AmazonS3存储和检索数据,如file_get_contents、fopen、copy、rename、unlink、mkdir、rmdir等


下载它并
包括它?顺便说一句,如果没有人告诉你这个想法有多疯狂,那就让我来做第一个。这会非常缓慢。@RyanParman不一定。s3fs允许您将装载的S3存储桶缓存到本地目录中。在这种情况下,性能与本地文件访问没有任何不同。现在,如果文件一直在更改,并且缓存命中率相对较低,那么,是的,这可能会很慢。