簡體   English   中英

如何使用Amazon S3 SDK在存儲桶中下載和執行php文件?

[英]How can I download and execute a php file in a bucket using Amazon S3 SDK?

如何使用S3 SDK在Amazon中連接存儲桶時執行PHP文件?

我嘗試使用$s3->getBucket ,我得到了以下數組。 但我需要執行此文件的結果。

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

)

是否有任何函數/方法來執行PHP文件?

您無法直接在Amazon S3上執行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.

您可以使用s3fs之類的東西在本地文件系統中安裝S3存儲桶,然后像其他任何文件一樣包含該文件。

根據php上的allow_url_fopen和allow_url_include ini設置,可以使用自定義流包裝器實現。 我們在我們的項目中使用了這樣的東西。 由於擁有IPR,因此無權共享代碼。 但它基於http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-s3-stream-wrapper.html

Amazon S3流包裝器允許您使用內置的PHP函數(如file_get_contents,fopen,copy,rename,unlink,mkdir,rmdir等)從Amazon S3存儲和檢索數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM