SAE臨時檔案讀寫例子 SAE_TMP_PATH

來源:互聯網
上載者:User

標籤:語句   提升   post   php   tin   傳統   讀寫   操作   上傳   

 

<?php  function sae_write($file,$content){    file_put_contents(SAE_TMP_PATH."/".$file,$content);  }  function sae_read($file){    return file_get_contents(SAE_TMP_PATH."/".$file);  }  ?>  
<?php sae_write("1.txt","test"); $rs=sae_read("1.txt"); print_r($rs); ?>

當處理上傳圖片時,原圖被POST上來之後,可直接 move_uploaded_file 到 Storage 下。

而當需要對上傳上來的圖片添加浮水印時,一般是先處理該圖然後儲存到支援臨時讀寫的TmpFS下,再把這個檔案寫入到Storage中,但是這時不能夠再使用 move_uploaded_file (bool move_uploaded_file( string $filename, string $destination) )函數了,因為如果 $filename 非通過 HTTP 的 HTTP POST 上傳時,視為該 $filename 非法,函數將不執行任何操作返回 flase。

可簡單有以下陳述式完成:

file_put_contents($filaname, file_get_contents($tmpfile));  


================
TmpFS

因為平台安全性的考慮,SAE限制了使用者對於本地IO的使用,但這樣對於一些傳統的PHP項目,也許帶來了很多不便,因為它們都或多或少的有對本地IO的操作,像Smarty的編譯模板。為瞭解決這個問題,SAE提供了TmpFS功能。TmpFS允許開發人員通過標準的IO函數臨時讀寫本地IO,這樣方便了很多非SAE項目的移植。

特別注意:

臨時檔案的生存周期等同於PHP請求,也就是當該PHP請求完成執行時,所有寫入TmpFS的臨時檔案都會被銷毀
TmpFS是本地臨時檔案,不是共用儲存,而SAE是全分布式環境,所以不同請求之間無法通過TmpFS共用操作檔案
TmpFS操作的檔案限於SAE_TMP_PATH目錄內,而不同App的SAE_TMP_PATH是不同的
TmpFS的檔案為純記憶體儲存

應用情境

使用者的可持久化儲存,請使用Storage或者MySQL儲存,而緩衝儲存請使用Memcache服務儲存,TmpFS是滿足使用者的一個請求的臨時檔案的讀寫需求。比如抓取一個URL的圖片,判斷一下大小,再決定是否寫入Storage。需要在本地組建檔案的情況大致分以下幾種:

緩衝
設定檔
靜態檔案
臨時檔案

使用指南
例子:

appname: saetest
appversion: 1

在一個php檔案中:

file_put_contents( SAE_TMP_PATH . ‘/mycode.txt‘ , ‘dummy test‘ );  echo file_get_contents( SAE_TMP_PATH . ‘/mycode.txt‘ ); // will echo dummy test;  

如果是兩個獨立的php檔案:

    a.php     file_put_contents( SAE_TMP_PATH . ‘/mycode.txt‘ , ‘dummy test‘ );  b.php     echo file_get_contents( SAE_TMP_PATH . ‘/mycode.txt‘ ); // 出錯啦,檔案已經不存在了...  

說到這裡,大家應該明白,用它做緩衝不但不會帶來效能提升,反而會帶來額外的開銷。

  

 

SAE臨時檔案讀寫例子 SAE_TMP_PATH

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.