ホームページ  >  記事  >  バックエンド開発  >  SAE プラットフォームでのファイル I/O 処理_PHP チュートリアル

SAE プラットフォームでのファイル I/O 処理_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:12:50722ブラウズ

SAE プラットフォームを使用したことのある友人は、プラットフォームのセキュリティ上の考慮事項により、SAE ではユーザーによるローカル IO の使用が制限されていることを知っておく必要があります。しかし、これは一部の従来の PHP プロジェクトに多大な不便をもたらす可能性があります。これは、Smarty のコンパイル テンプレートなど、プロジェクトには多かれ少なかれローカル IO 操作が含まれるためです。この問題を解決するために、SAE は TmpFS 機能を提供します。 TmpFS を使用すると、開発者は標準 IO 関数を通じてローカル IO を一時的に読み書きできるため、多くの非 SAE プロジェクトの移植が容易になります。

しかし、TmpFS だけでは十分ではありません。名前から判断すると、そのライフサイクルは PHP リクエストのライフサイクルと同じです。つまり、PHP リクエストの実行が完了すると、TmpFS に書き込まれたすべての一時ファイルが削除されます。破壊される。 TmpFS は共有ストレージではなくローカル一時ファイルであり、SAE は完全な分散環境であるため、さまざまなリクエストが TmpFS を介して操作ファイルを共有することはできません。詳細については、SAE プラットフォームのドキュメントを参照してください。

例: たとえば、TmpFS を使用してカウンタを作成したいとします (もちろん、SAE が提供するカウンタ サービスを使用することもできます)

コードは次のとおりです:

リーリー

elseで実行することは不可能であることがわかりました。実行が終了するたびに一時ファイルシステムが存在しなくなるため、コードが開始されるたびに(新しいphpリクエストです)、一時ファイルが存在するかどうかが判断されます.

つまり、ゼロタイム ファイルは 2 つのファイル間で共有したり、ファイルに対する異なる時間リクエストを共有したりすることはできません。

実際、SAE ドキュメントを注意深く読めば、SAE が提供する Wrappers でそれを見つけるのは難しくありません

KVDB -- saekv://

saekv:// は、KVDB の読み取りと書き込みに使用されます。主に、永続的に保存されたデータを保存するために使用されます。最も一般的に使用されるシナリオは、構成ファイルを保存することです。

これにより、永続ファイルの作成と変更の要件を満たすことができます

このサービスを使用する前に、まず

を行う必要があります。

以下はカウンターのテストコードです:

リーリー

以上です。

ファイルを同時に削除するには2つの方法があります

1 つの方法は、PHP のネイティブ削除メソッド unlink($file) を使用することです

もう 1 つの方法は、SAE が提供する kvdb データベースを削除することです:

コード:

リーリー

詳細については、KVDB サービスのドキュメントを参照してください。count.txt がキーの値です...

参考ドキュメント: SAE プラットフォームのドキュメント

http://www.bkjia.com/PHPjc/440414.html

tru​​ehttp://www.bkjia.com/PHPjc/440414.html技術記事 SAE プラットフォームを使用したことのある友人は、プラットフォームのセキュリティ上の考慮事項により、SAE がユーザーによるローカル IO の使用を制限していることを知っておく必要があります。しかし、これは一部の従来の PHP プロジェクトに多くの不便をもたらす可能性があります...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。