LoginSignup
5
3

More than 3 years have passed since last update.

Microsoft Flow で SharePoint のファイルを xxx に同期させようとした話

Posted at

Microsoft Flow という(以下 Flow と書きます)、IFTTT のようなタスク自動化サービスがありまして、SharePoint で管理しているファイルを、別のクラウドストレージ(まあ S3 なんですけど)にも同期させて、別のシステムでそのファイルを使用したい、という案件があったので技術調査をしたときの備忘録です。

140文字以内で結論

Flow to S3 は超面倒っぽいけど Flow to Azure は超簡単だったので、Azure にします。
と思ったけど Azure Blob Storage コネクタも PREMIUM になる と聞いて詰んだw

Flow to AWS S3 は面倒っぽい

Flow には、コネクタ という、さまざまなデータの入出力先が用意されていて、例えば、「SharePoint にアップロードされたファイルを、Google Drive にコピーする」というタスクは簡単に作ることができます。

が、なぜか(作為的に?) Amazon Web Services 関連のコネクタはほぼ存在しません。そのため「SharePoint にアップロードされたファイルを、S3 にコピーする」というタスクは、簡単に作成することができません。

そのため、「SharePoint にアップロードされたファイルを、S3 にコピーする」を実現するには、以下のような手順を踏む必要があります(ここは調査に基づく推測です)。

Http コネクタを使う

HTTP コネクタ を使用して、S3 REST API を投げて、S3 へのファイル PUT を行います。

ただしこのコネクタは PREMIUM コネクタであり、プラン によると、これを使うには「Flow プラン 1」または「Flow プラン 2」が必要です。 Flow の が必要です。さらに都合が悪いことに、 企業が契約することが多い Office365 に付属する「Flow for Office 365 and Flow for Dynamics 365」プランでも PREMIUM コネクタ は使用できません。

SFTP コネクタを使う

確か S3 を SFTP に対応させるサービスが AWS にあったよね → ありました(新発表 – AWS Transfer for SFTP – Amazon S3と連携したマネージドなSFTPサービス | Amazon Web Services ブログ)。

そして Flow に SFTP コネクタ があるので、 "SharePoint to S3 via SFTP" ができるのでは? と考えました。

しかしこれ、

うん、ムリ。

カスタムコネクタを作成する

PREMIUM コネクタが使えないのならば、コネクタ自体を自作する「カスタムコネクタ」という選択肢があります。これは、「Flow for Office 365 and Flow for Dynamics 365」プランでも使用可能です。

が、プラン ページの注意書きに以下のような記述があります。

カスタム アプリケーションへの接続または HTTP コネクタを使用した接続は、Office 365 ライセンスでは使用できません。

ダメっぽいです。なんだこれは。

SharePoint の WebHook を使用する

Microsoft Flow をあきらめ、SharePoint 側の API を使用する案もあります。

これを使用すると、SharePoint 内のファイルの追加や変更を検知して外部 WebAPI を呼び出し、その API で S3 に PUT するという実装ができそうです。

が、この 手順 を読み始めると、不安なことが書かれていました。

2, SharePoint Online にアクセスするには、Azure AD アプリに Office 365 SharePoint Online アプリケーションへのアクセス許可を付与し…

え、Azure 必須なの?(ちょっと仕組みを理解していないけど…

選ばれたのは Azure でした(やっぱり選べませんでした

AWS S3 は無いクセに、Azure Blob Storage コネクタはあって、しかも PREMIUM ではない(Free プランでも Office365 プランでも使える)とのことなので、もうコレにします。

が、2019年10月から Flow の料金体系が代わり、Azure Blob Storage コネクタも PREMIUM になる とのことです、おいっ!

どうしよう…

さてどうしましょう、現状案は以下です。

  1. もう EC2 に FTP サーバー立てるか…
  2. 頑張って SharePoint WebHook やる
  3. PREMIUM が使えるユーザーを1つだけ購入する(Office365プランの人たちと同居できるん?)
  4. SharePoint の機能で特定フォルダだけ Public アクセス許可して ip/domain 制限できたりするのか??

おかしいな、検証と言いつつ、もう実装まで終わってる予定だったんだが…。
3 と 4 は Microsoft のどの窓口に聞けばいいの?

5
3
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
5
3