首頁 php教程 php手册 SAE平台的文件I/O处理

SAE平台的文件I/O处理

Jun 13, 2016 am 11:29 AM
處理 安全 平台 文件 朋友 使用者 知道 考慮 限制

      用过SAE平台的朋友应该知道,出于平台安全性的考虑,SAE限制了用户对于本地IO的使用。但这样对于一些传统的PHP项目,也许带来了很多不便,因为它们都或多或少的有对本地IO的操作,像Smarty的编译模板。为了解决这个问题,SAE提供了TmpFS功能。TmpFS允许开发者通过标准的IO函数临时读写本地IO,这样方便了很多非SAE项目的移植。

        但是TmpFS是不够的,从名称来看是临时文件系统,它的生命周期同于PHP请求,也就是当该PHP请求完成执行时,所有写入TmpFS的临时文件都会被销毁。TmpFS是本地临时文件,不是共享存储,而SAE是全分布式环境,所以不同请求之间无法通过TmpFS共享操作文件,具体可参照SAE平台文档说明。

 示例:比如我想用TmpFS做个计数器(当然也可以用SAE提供的counter服务)

代码如下:

<strong><span  1</span> <?<span php
</span><span  2</span> <span $file</span>=SAE_TMP_PATH."/test.txt"<span ;
</span><span  3</span> <span if</span>(!<span file_exists</span>(<span $file</span><span )){
</span><span  4</span>     <span file_put_contents</span>(<span $file</span>,1<span );
</span><span  5</span>     <span echo</span> 1<span ;
</span><span  6</span> }<span else</span><span {
</span><span  7</span>     <span $n</span>=<span file_get_contents</span>(<span $file</span><span );
</span><span  8</span>     <span $n</span>++<span ;
</span><span  9</span>     <span echo</span> <span $n</span><span ;
</span><span 10</span>     <span file_put_contents</span>(<span $file</span>,<span $n</span><span );
</span><span 11</span> 
<span 12</span> <span }
</span><span 13</span> 
<span 14</span> 
<span 15</span> ?></strong>
登入後複製

发现根本进不了else里执行,因为临时文件系统随着每一次的执行结束就已经不存在了,所以每次代码开始时判断(又是一个新的php请求了),那个临时文件是不存在了.

就是说零时文件不能共享与两个文件或者一个文件的不同时间请求之间。

其实细读SAE文档,不难发现SAE提供的Wrappers里

KVDB -- saekv://

saekv://用来读写KVDB 主要用来保存持久存储的数据,最常用的场景是保存配置文件

这项可以满足我们对持久保存文件的创建修改要求

在使用这项服务前必须先才行。

下面是计数器的测试代码:

<strong><span  1</span> <?<span php
</span><span  2</span> <span $file</span>="saekv://count.txt"<span ;
</span><span  3</span> <span if</span>(!<span file_exists</span>(<span $file</span><span )){
</span><span  4</span> <span file_put_contents</span>(<span $file</span>,1<span );
</span><span  5</span>     <span echo</span> 1<span ;
</span><span  6</span> }<span else</span><span {
</span><span  7</span>     
<span  8</span> <span $n</span>=<span file_get_contents</span>(<span $file</span><span );
</span><span  9</span>     <span echo</span> <span $n</span><span ;
</span><span 10</span>     <span $n</span>++<span ;
</span><span 11</span>     <span file_put_contents</span>(<span $file</span>,<span $n</span><span );
</span><span 12</span>     
<span 13</span>     
<span 14</span> }</strong>
登入後複製

这样就可以了。

同时删除文件也有两种方式

一种就是php的原生删除方式unlink($file)就行

还有一种就是通过SAE提供的kvdb数据库删除方式:

代码:

<strong><span 1</span> <span $file</span>="saekv://count.txt"<span ;
</span><span 2</span> <span $kv</span>=<span new</span><span  SaeKV();
</span><span 3</span> <span $kv</span>-><span init();
</span><span 4</span> <span if</span>(<span $kv</span>->delete("count.txt"<span )){
</span><span 5</span> <span echo</span> "ok"<span ;
</span><span 6</span> }<span else</span><span {
</span><span 7</span> <span echo</span> "no"<span ;
</span><span 8</span> }</strong>
登入後複製

详情参见KVDB服务文档 ,count.txt是键值...

参考文档:SAE平台文档

 

 

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩蓋:探險33-如何獲得完美的色度催化劑
2 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1430
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
使用C++實現機器學習演算法:安全性考量與最佳實踐 使用C++實現機器學習演算法:安全性考量與最佳實踐 Jun 01, 2024 am 09:26 AM

在使用C++實作機器學習演算法時,安全考量至關重要,包括資料隱私、模型篡改和輸入驗證。最佳實務包括採用安全庫、最小化權限、使用沙盒和持續監控。實戰案例中展示了使用Botan庫對CNN模型進行加密和解密,以確保安全訓練和預測。

Struts 2框架的安全配置與加固 Struts 2框架的安全配置與加固 May 31, 2024 pm 10:53 PM

為保護Struts2應用程序,可以使用以下安全性配置:停用未使用的功能啟用內容類型檢查驗證輸入啟用安全性令牌防止CSRF攻擊使用RBAC限制基於角色的訪問

PHP微框架:Slim 與 Phalcon 的安全性探討 PHP微框架:Slim 與 Phalcon 的安全性探討 Jun 04, 2024 am 09:28 AM

Slim和Phalcon在PHP微框架的安全性比較中,Phalcon內建有CSRF和XSS防護、表單驗證等安全特性,而Slim缺乏開箱即用的安全特性,需手動實施安全措施。對於安全至關重要的應用程序,Phalcon提供了更全面的保護,是更好的選擇。

如何增強Spring Boot框架的安全性 如何增強Spring Boot框架的安全性 Jun 01, 2024 am 09:29 AM

如何增強SpringBoot框架的安全性增強SpringBoot應用的安全至關重要,以保護使用者資料和防止攻擊。以下是增強SpringBoot安全性的幾個關鍵步驟:1.啟用HTTPS使用HTTPS在伺服器和客戶端之間建立安全的連接,防止資訊被竊聽或篡改。在SpringBoot中,可以透過在application.properties中配置以下內容來啟用HTTPS:server.ssl.key-store=path/to/keystore.jksserver.ssl.k

java框架安全架構設計應如何與業務需求平衡? java框架安全架構設計應如何與業務需求平衡? Jun 04, 2024 pm 02:53 PM

透過平衡安全需求和業務需求,Java框架設計可實現安全性:識別關鍵業務需求,優先考慮相關安全要求。制定彈性安全策略,分層應對威脅,定期調整。考慮架構靈活性,支援業務演變,抽象安全功能。優先考慮效率和可用性,優化安全措施,提高可見度。

內聯模板函數的應用與限制 內聯模板函數的應用與限制 Apr 28, 2024 pm 02:33 PM

內嵌模板函數將程式碼直接插入呼叫點,無需產生單獨的函數對象,應用包含程式碼最佳化、效能提升、常數求值和程式碼簡化。但要注意其局限性,例如編譯時間延長、程式碼大小增加、可偵錯性降低以及跨編譯單元的限制。

SHIB幣放在哪個錢包比較安全? (新手必看) SHIB幣放在哪個錢包比較安全? (新手必看) Jun 05, 2024 pm 01:30 PM

SHIB幣對投資人來說已經不陌生了,它是狗狗幣同類型概念代幣,隨著市場的發展,目前SHIB的市值已經排名12了,可以看出SHIB市場的火爆,吸引力無數投資者參與投資。而先前市場的交易、錢包安全事件頻出,許多投資人對於SHIB的存放問題一直感到擔憂,不知道當下SHIB幣放在哪個錢包比較安全?根據市場數據分析來看,相對安全的錢包主要就是OKXWeb3Wallet、imToken、MetaMask錢包會比較安全,接下來小編為大家詳細說。 SHIB幣放在哪個錢包比較安全?目前來看,SHIB幣放在OKXWe

谷歌管理器如何新增和管理用戶 谷歌管理器如何新增和管理用戶 Sep 02, 2024 pm 02:41 PM

谷歌管理器如何新增和管理使用者?谷歌瀏覽器是支援多個用戶登入使用的,這樣我們跨裝置登入也不用怕了,如果我們有許多用戶就需要對其進行添加管理。有些小夥伴可能不知道要如何操作。別擔心,小編今天為大家整理了詳細步驟教學說明,有興趣的夥伴快來和小編一起看看吧。詳細步驟教學說明1、開啟電腦後,在桌面上找到安裝好的Google瀏覽器圖示並雙擊打開,如下圖所示。 2.點擊Google瀏覽器右上角的三小點圖標,如下圖所示。 3.點選Google瀏覽器下拉選單裡的【設定】選項,如下圖所示。 4.在開啟的Google瀏覽器設定介面裡, 點選【管理ch

See all articles