hirokonaBlog

ググる→忘れそう→即時メモ 京都のWebデザイナーの備忘録

三連休にGoogle Drive内のdocsファイルの権限を一括移譲するgasをいじった

なぜか世間様がシルバーウィークでウッキウキの土曜の朝に、なんの前触れも助走もなく、気づいたら朝ごはんも食べずに突如業務効率化の自由研究をスタートしていました

※本文の途中でがっかりイリュージョンみたいに書いてますが、先に言っときます。エクセルとか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ドライブのオーナー権限を譲渡・移動させる方法 | ムクッといこう

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でログ出力

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 ここまで]


投稿日

カテゴリー:

,

投稿者:

コメント

“三連休にGoogle Drive内のdocsファイルの権限を一括移譲するgasをいじった” への2件のフィードバック

  1. ひこざるさんのアバター

    ファイル数が膨大な時は6分で処理が終わらないので、少しずつ処理する必要があります。基本的に6分対策ができてないと後々困るので常に意識しています。
    本家でもそれが解決できていないようなので、それっぽいコードを書いてみた。

    https://blog.hikozaru.com/2019/01/google-apps-script-3.html

    1. hihihiのアバター
      hihihi

      ほぉ〜6分で強制終了になるのですね。GASにそういう仕様があるとは知りませんでした。
      これは知らないと他の人に実行してもらったときに、「なんかおかしい」とだけいわれて「???」となって調べ倒すやつですね。
      有益な情報、共有ありがとうございます・・・!
      わたしもまた休みの日に時間が出来たらいじってみます〜!
      とりいそぎ!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください