■ 備忘:GAEからのGoogle Cloud Storage書込について
最近Google Application Engine(GAE)のテストをしている中で、ファイルを書き込む場合はローカルストレージには書けないので「Google Cloud Storage」(GS)に書き込めという話を知ったというか色々試した。なお例によってPHP。
ローカルストレージではないどころか汎用的なプロトコルで行われるものでもない(※中身は知らないが)のでPHPからGSの”バケット”にアクセスするためにはいくつか約束事を経由する必要があったが(php.iniに「google_app_engine.allow_include_gs_buckets」の設定が必要、アクセス先は「gs://[GAEアクセスURL]/[対象バケット]」にする、等)、それさえやればフツーに読み書きできた。
・・・のだがよく見たらあんまりフツーではなかった。
改めてGAEのファイルアクセスに関する記述を見ると、「一度クローズしたファイルに”追記”することはできないよ。その場合完全上書きになるよ」的なことが書いてある。
試しにfopenを色々なモードで試したところ、とりあえず以下っぽいことが判明。
なのでログファイルのようにデータを貯めていくファイルについては「一度全読み込み→全書き」という手段を取らねばならないため、量次第ではあるが実質的にはナンセンスだろう。書き込む度にファイルを新規に作成していくのを許すようなデータか、一時ファイルといった利用がメインだろうか。どっちにしろ無料枠は5GBだしね。
追記:
とゆか別のページに使えるファイル系関数の情報が載っててfopenのパラメータ指定もされてるわ。
ローカルストレージではないどころか汎用的なプロトコルで行われるものでもない(※中身は知らないが)のでPHPからGSの”バケット”にアクセスするためにはいくつか約束事を経由する必要があったが(php.iniに「google_app_engine.allow_include_gs_buckets」の設定が必要、アクセス先は「gs://[GAEアクセスURL]/[対象バケット]」にする、等)、それさえやればフツーに読み書きできた。
・・・のだがよく見たらあんまりフツーではなかった。
改めてGAEのファイルアクセスに関する記述を見ると、「一度クローズしたファイルに”追記”することはできないよ。その場合完全上書きになるよ」的なことが書いてある。
試しにfopenを色々なモードで試したところ、とりあえず以下っぽいことが判明。
- 追記モードである「a」はfopenでfalseとなる。
- というか読み書きモードである「r+、w+、a+」も軒並みfalseとなる。ロックの兼ね合いか?
- 実質的に使えるのは「r、w」のみ
なのでログファイルのようにデータを貯めていくファイルについては「一度全読み込み→全書き」という手段を取らねばならないため、量次第ではあるが実質的にはナンセンスだろう。書き込む度にファイルを新規に作成していくのを許すようなデータか、一時ファイルといった利用がメインだろうか。どっちにしろ無料枠は5GBだしね。
追記:
とゆか別のページに使えるファイル系関数の情報が載っててfopenのパラメータ指定もされてるわ。
2016-05-20 [技術]Tweet
関連記事:
■Googleから家のどこにいてもネットに接続できるルーター「Google Wifi」が登場、スマホからも操作可能
■スマホ向けサイトのアドレスを入力するだけで100点満点中何点かを表示するGoogleの「Mobile Website Speed Testing Tool」公開
■Googleが自社で使っている「クラウド機械学習」を一般に開放、こんなスゴイことが簡単にできる
■Googleがまるごとスター・ウォーズ化。ダークサイド・ライトサイドをGmail や マップなどで選択可能に
■スマートウォッチ Huawei Watchが10月16日国内発売、Android Wear搭載の円形モデル
■GoogleがAndroid 6.0を搭載した「Nexus 6P」と「Nexus 5X」を発表し詳細スペックが明らかに
■速報:Google創業者ラリー・ペイジが新会社Alphabet設立、Googleを子会社化
■ARゲーム IngressがAndroid Wearに対応。スマートウォッチで手首ハック #はかどる
■スマートウォッチAndroid Wearがさらに強化、「常にオン」「腕振りジェスチャー」「手描きで絵文字認識」「アプリランチャー」
■グーグルの自動運転車、すでに事故を起こしていた
■スマホ向けサイトのアドレスを入力するだけで100点満点中何点かを表示するGoogleの「Mobile Website Speed Testing Tool」公開
■Googleが自社で使っている「クラウド機械学習」を一般に開放、こんなスゴイことが簡単にできる
■Googleがまるごとスター・ウォーズ化。ダークサイド・ライトサイドをGmail や マップなどで選択可能に
■スマートウォッチ Huawei Watchが10月16日国内発売、Android Wear搭載の円形モデル
■GoogleがAndroid 6.0を搭載した「Nexus 6P」と「Nexus 5X」を発表し詳細スペックが明らかに
■速報:Google創業者ラリー・ペイジが新会社Alphabet設立、Googleを子会社化
■ARゲーム IngressがAndroid Wearに対応。スマートウォッチで手首ハック #はかどる
■スマートウォッチAndroid Wearがさらに強化、「常にオン」「腕振りジェスチャー」「手描きで絵文字認識」「アプリランチャー」
■グーグルの自動運転車、すでに事故を起こしていた