LoginSignup
0
0

More than 3 years have passed since last update.

GoogleAppsScript CacheService PropertiesService

Posted at

GASでデータの保存方法の2つのやり方を備忘
どちらも文字列での保存になるけど、Javascriptなら文字列化とその復号は簡単なので問題ないかと。

1.PropertiesService

リファレンス
DocumentとScriptとUserとあるけど、普段はScriptを使っている。

  let scriptProperties = PropertiesService.getScriptProperties();
  let props = scriptProperties. getProperty("property-key");
  ...
  ...

  scriptProperties. setProperty("property-key",props);

あまり特別なことはない。
スクリプトプロパティにセットした値は、スクリプトエディターで確認できる。
永続的に使えるので、ソースコードやスプシに書かない設定等でつかっている。

2.CacheService

リファレンス
こちらも、DocumentとScriptとUserとある。
ユーザー共通のキャッシュデータはScriptキャッシュ、ユーザー固有のキャッシュはUserキャッシュ、となるだろうか。(ScriptキャッシュでもUserごとにキーに付け加えればできちゃうけど)

  let cache = CacheService.getScriptCache();
  let cacheData = cache.get("cache-key");
  ...
  ...

  cache.put("cache-key",cacheData,3600);

propertiesがgetProperty、setPropertyなのにcacheはget、put。
put時には、expirationInSecondsのオプションがあるので、何秒キャッシュするか設定する。

こちらは、かなり短期、少量のデータキャッシュとなるけど、他のシートのデータを一時的に保存したり、シートを扱ってるユーザーのデータなどをキャッシュするのにはよいのでは。
キーの長さ:250文字
データ:100kb
最大保存期間:21600秒(ただしキャッシュ溢れで削除の可能性あり)

リファレンスのソースにあるように、キャッシュにあったらキャッシュをかえし、なかったらデータを取りに行くようなコードがメインになると思います。

キャッシュデータを見る方法は自分でコードから取る以外なさそう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0