[GAS] Google Drive の特定フォルダ配下のフォルダ・ファイルの権限を一括で移譲する
2018/11/10 15:54
  • 久しぶりに GAS ( Google Apps Script ) の話題です。

    ひょんなことから、Google Drive 内の数百以上のファイルのオーナー権限を
    他者に変更する必要が出てきました。

    自分がオーナー のファイルを一括で 特定の誰かひとり にオーナー権限を移譲することができるようですが、例えば「議事録フォルダ内のファイルを A さんに移譲」、
    「ほげほげプロジェクトフォルダ内のファイルは B さんに移譲」みたいなことができません。

    というわけで、そんな痒いところに手が届くスクリプトを書いちゃいました。

    仕様


    1. 指定したフォルダ配下に含まれる自分がオーナーのフォルダ/ファイルのオーナー権限を
    一括で指定したユーザーに移譲する

    2. 移譲先が複数ある場合は都度スクリプトを実行する

    コード



    スクリプト実行時間の 6 分制限が思いの外きつく、一度に複数の親フォルダ、複数の移譲先を指定するには無理があった感じです。
    タイムアウト系の処理をもう少ししっかりできればなーと思う次第ですね。

    上記スクリプトだと、数千ファイルは厳しくても、数百ファイルなら対応できると思います。(;´Д`)

    2018/11/10 追記


    上記のコードだと、Google Drive 内に pdf やら zip やら、Google Apps Script で扱えない形式のファイルが有った場合はエラーで止まってしまう
    という現象があったようなので以下のように修正しました。

    扱える MIME TYPE はこちら

        // Google のドキュメント以外はスキップ
        if (mime.match(/google-apps/)) {
          insertPermission(_file.getId(), options);
          Logger.log("ファイル名: " + _file.getName());
        } else {
          Logger.log("スキップされました" + _file);
        }
    

    記事にしていただいて&助言いただきましてありがとうございます!

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


    人気ブログランキングへ ブログランキング・にほんブログ村へ
    ↑応援よろしくお願いします!m(_ _)m

  • 2017/12/09 13:38
  • ツール
  • Google Apps ScriptGASJava ScriptJSスクリプトGoogle Driveドライブ権限移譲
  • 新しい記事へ
    CentOS6 環境に PHP の ssh2 extension をインストールしたときのメモ

    古い記事へ
    一足早い秋を感じに軽井沢にぶらり旅してきました

profile picture

自己紹介的な何か

@wkmettyでついったーやってます。時々。 6年間勤めたゲーム会社を2018年2月に退職しフリーランスのプログラマに。 WordPress Core, WP-CLI コントリビューター。 お仕事募集中です。