2015-04-17 193 views
0

我有用戶上傳文件到我的服務器一般大的HTML(4-8 MB)文件。然後將服務器推送到S3並將文件提供給用戶。我需要的是壓縮文件,然後將它們推送到S3並將壓縮文件提供給用戶。我怎樣才能做到這一點?我有APACHE,PHP在我的後端運行。壓縮並上傳到AWS S3

回答

2

您可以使用PHP壓縮文件並將壓縮文件推送到S3。

// Name of the file to compress 
$file = "yourfile.txt"; 

// Name of compressed gz file 
$gzfile = "test.gz"; 

// Open the gz file (w9 is the highest compression) 
$fp = gzopen ($gzfile, 'w9'); 

// Compress the file 
gzwrite ($fp, file_get_contents($file)); 

//close the file after compression is done 
gzclose($fp); 
+0

上傳API,你可以看到和將.gz文件推到S3? – vipulsodha

+0

是的,假設可以使用.gz文件爲用戶提供服務 – Jaco

+0

我們如何爲用戶瀏覽器提供.gz文件並將其解壓縮?回到html?將添加標題內容類型的幫助? – vipulsodha

2
  1. 你有其他答案的例子如何壓縮爲gzip

  2. 複製到S3通過AWS控制檯是可能的:

    AWS S3 CP /path/test.gz s3:// your_bucket/path/

您需要將密鑰/付費憑證放置到〜/ .aws/config文件

  • 下面是一些答案如何服務gzip壓縮的內容與Apache apache .gz gzip content handler for Linux documentation /usr/share/doc and localhost/doc/
  • 我相信你會需要整合s3fs熔絲(https://code.google.com/p/s3fs/)文件系統到Web服務器閱讀gzip壓縮的內容

    而且我有s3fs一些經驗,也不會建議你嘗試直接寫入到從服務器安裝s3fs文件系統,它可以帶來的煩惱和系統崩潰。最好的辦法是通過AWS控制檯複製內容,但在使用安裝的文件系統爲只讀訪問

    更新:約s3fs問題的更多細節,以及如何使用AWS的S3在我這裏其他的答案How could I store uploaded images to AWS S3 on PHP