高見知英のかいはつにっし(β)

高見知英のアプリケーション開発日誌 のほか、地域活動などの活動報告ブログ。

PicoのDropbox連携プラグインを作成しました。

以前から少しずつ書いていたような気もしますが、Dropboxに配置したコンテンツファイルを自動的にサイトに配置するPicoCMS用プラグインを作成しました。

github.com

プラグインと言っても自分が独自拡張したPico独自拡張版にある、更新プラグインの一種です。

github.com

本Picoを利用し、update/modules/配下に本プラグインを格納することで、Dropboxのアプリフォルダに配置したファイルを自動的にサイトに配置します。使い方はリポジトリのReadmeを参照してください(そのうち写真付きのガイドなども用意しようと思います)。

そして、現在おんぷ村の記事更新にも、このプラグインを利用するようにしました。このプラグインもまだまだ安定していないので、しばらくこのままやってみようと思います。そのうちできれば、もっと複数人で共有しやすいような仕組みの検討や、もう少し初期設定がしやすい仕組みの検討などしていければいいかな と。

Pico自動更新の仕組み

ということで、現在、自家製拡張版のPicoでサポートしている自動更新機能は、以下の二つになりました。

  • Dropbox(コンテンツファイルやコンフィグファイルの自動更新)
  • Git(サイト自体がGithubやBitbucketなどのGitリポジトリで管理されている場合、Gitのプッシュを契機としてサイト上でgit pullする)

とりあえず今のところ自動更新についてはこの二つだけとする予定。他のファイルストレージへの対応などは今のところ考えていません。今後は他のプラグインを作成したり、Picoの情報をまとめていくなどして使いやすい仕組みを構築していきたいと思います。

で、DropboxプラグインはPCに詳しくない人にも使えるか?

今回のDropbox連携プラグイン、本当はPicoをあまりPCやサーバに詳しくない人でも使えるようなものを目指して作ったものです。Dropboxにファイルを置くだけで更新ができるのであれば、FTPソフトも要りませんし、Gitクライアントの知識も要らない。そのため、多くの人がPicoを気軽に利用できるかな と。

ただ、現状はちょっと難しいかな という感じです。理由はREADMEにも書いてありますが、Dropbox APIの呼び出しエラーを回避できないため。そのため何も考えずに複数のファイルをドンと配置すると、途中でステータスコード429「Too Many Requests」というエラーを吐いてしまうことあります。

もしAPIの呼び出しをもう少し効率化して、このエラーが滅多に出ないような仕組みを構築できればいいのですが、現状だとこのプラグインをこのまま一般利用するのは、ちょっと厳しいかも。


あとは、通知周りもSlack以外対応できてないのが弱いところ。例えばメール通知などをサポートできればいいのですが、Dropbox側の通知がファイルのアップロードがすべて完了するより前に起こる場合もあるため、難しいですね。まあ、方法があれば何とかしたいところですが。

今後のPicoについて

Picoも去年末で正式版となり、いろいろと仕様が変わりました*1。本家も比較的活発に更新が行われているようです。
前にも少し書きましたが、Picoはシンプルなぶんトラブルも起こりづらく、インストールさえ済ませればかなり安定しているためできればもっと他の分野でも使えるようにお勧めしていきたいですね。

今後はPicoの情報サイトなども作成していきたいな とも思っています。