[英]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.