なぜか世間様がシルバーウィークでウッキウキの土曜の朝に、なんの前触れも助走もなく、気づいたら朝ごはんも食べずに突如業務効率化の自由研究をスタートしていました
※本文の途中でがっかりイリュージョンみたいに書いてますが、先に言っときます。エクセルとかPSDとかpdfとかは残念ながら処理スルーされます。
主にこちらを参考に作業しました
[GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する|カメラのちプログラミング♥ところによりカフェ
https://4to.pics/article/post/98
用途としては
・後輩へのdocsファイルの権限委譲に!
・部署異動のときに同僚へパス!
・プロジェクトが運用フェーズに入ったときの担当変更に!
・退職して消えr…(ケフンケフン
などが考えられるかと〜
便利ポイントとしては
・アカウント一括じゃなくてディレクトリごと、ファイルごとにオーナー変更できる
・ディレクトリ配下を一括で変更できる
でしょうか
今回の作業は、多分、己の事務処理系ファイルを別アカウントに移行しようと思っていちいちポチポチする自分の未来予想図に一瞬でげんなり出来たのと、前職を退職するときにあまりのファイルの多さとプロジェクト数にどんどんびきびきどんびきした様がフラッシュバックし、朝から気分がレイニーブルーになったのが動機になっていたのかと。(自分でもよくわかりません)
最初はなぜかエラー続出した
おお〜素敵な先人がすでに!ありがとう!!!もうあるならコピペするだけでええや〜〜ん!とコピペして実行したら、、、止まっちゃった。。。
んんん?とおもったらどうやらある一定のファイルでエラーが出て処理が止まっているらしい。
あ、エクセルとかPSDとか、googleのサービスで作ったファイル以外はGASのサポート対象外で、権限委譲できないのね?
そっか、通常バックオフィスで、ドキュメントを管理共有しているならそもそもドキュメントだけを入れているのでPSDが〜フォントが〜エクセルが〜〜ってならないのね。。。
(扱うファイルが多岐にわたるWeb系エンジニアの宿命)
ってことで、対象のモノ以外を除外に
GoogleDrive関連でGASの処理対象となるファイル(のMIME Type)はこちら
Supported MIME Types | Drive REST API | Google Developers
https://developers.google.com/drive/api/v3/mime-types
対象にできるのは主にgoogleのドキュメント類だけっすね
Googleドライブのオーナー権限を譲渡・移動させる方法 | ムクッといこう
でけた!
主なコードいじった内容
//最終的にこれに
if(mime.match(/google-apps/)){
insertPermission(_file.getId(), options);
Logger.log("◎操作完了: " + _file);
}else{
Logger.log("×スキップ: " + _file);
}
//※最初は闇雲にエラー出たやつをつっこんでた(あとでげんなりしてMIME一覧を調べたw
// Logger.log("ファイルのMIMEタイプ: " + mime);
// if(mime != "application/vnd.ms-excel" && mime != "application/postscript" && mime != "application/pdf"){
その他参考にしたドキュメント
Class File | Apps Script | Google Developers
https://developers.google.com/apps-script/reference/drive/file#getMimeType()
GAS入門 – DriveAppクラスリファレンス
https://qiita.com/TakumaKawashiro/items/b32be642d05269e4b28f
Google Apps Scriptでログ出力
JavaScriptの正規表現
http://www.openspc2.org/JavaScript/data/regexp.html
出来たやつ一応貼っときます(コピしてOKやけど、あくまで自己責任でつこてね)
スクリプト自分で作ったことなくても入りやすいようにいったんスプレッドシートにしてみました
(スプレッドシート以外にもっていっても動きます)
https://docs.google.com/spreadsheets/d/1nXqdxTaA5SUhnKJZlrhFp2M7K6C8e-EITNAZgNpDt4E/edit?usp=sharing
あ、でもメール来ないように・・・のところはきかなかったのかメール来てたな。
うーん。また時間出来たら見よう
じゃっ!
[2019/01/09 add]
知らなかったのですが、参照元の、本家記事にも、PSDとか無視する部分を追記してくださったようです。
ひええ〜!
(本家の方今更ですが、とてもとてもわかりやすい記事で己でイチから作る手間が大幅に削減されました〜!ありがとうございます!←なんか褒め合いw)
本家記事 再掲
[GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する|カメラのちプログラミング♥ところによりカフェ
https://4to.pics/article/post/98
というわけで私の作成したスプレッドシートはお役御免なのですが、本家知らずに来た人のためにいったんはそのままにしておきますね〜。
ではでは。
インターネッツ、いい場所!!
[2019/01/09 add ここまで]
コメントを残す