2017-06-21 64 views
0

我正在爲Web應用程序創建PHP後端。現在我需要將所有API調用記錄到日誌文件中。現在,邏輯就是在服務器本身內創建一個日誌文件,並在創建新的API調用時附加相同的文件。我正在使用AWS S3文件存儲進行圖像上傳,我想知道如果我可以實現日誌文件創建,並將此日誌文件附加到我的S3存儲桶中名爲日誌的特定文件夾中。創建並追加PHP日誌文件到S3 Bucket中的文件夾下的文件中

是否有可能實現在S3存儲桶內創建新的日誌文件(不從本地上傳到s3)並將本地API調用日誌添加到其中?

我的日誌創建本地代碼波紋管式給出:

$log = "--------------------------------------".PHP_EOL. 
"UserIP: ".$_SERVER['REMOTE_ADDR'].' - '.date("F j, Y, g:i a").PHP_EOL. 
     "Request Data: ".$req_dump.PHP_EOL. 
     "Request Method: ".$_SERVER['REQUEST_METHOD'].PHP_EOL. 
     "API URL: ".$actual_link.PHP_EOL. 
     "File Name: ".$filename.PHP_EOL. 
     "--------------------------------------".PHP_EOL; 

     // $fp = fopen('../api_logs/request.txt', 'a'); 
     // $fw = fwrite($fp, $log); 
     // fclose($fp); 
     $fp = file_put_contents('../api_logs/request.log', $log, FILE_APPEND); 

回答

1

亞馬遜流封裝允許你從亞馬遜S3使用存儲和檢索數據的內置PHP函數一樣file_get_contentsfopencopyrenameunlinkmkdirrmdir

可以流數據文件類似如下:

$stream = fopen('s3://bucket/key', 'a'); 
fwrite($stream, 'Hello!'); 
fclose($stream); 

關於Amazon S3 Stream Wrapper的完整文檔可以發現here

相關問題