Google Drive のファイルをフォルダごとコピーする


Google Apps Scriptを使用してGoogle Driveフォルダのコンテンツを他のフォルダにコピーするコードです。

背景

Googleは、GSUITE組織のポリシーに従い、別の組織が管理する他のフォルダへのコンテンツの移動を許可していません。 また、Googleは、コンテンツの所有者を他の組織のユーザーに変更することも許可していません。 例えば、XXXXX@gmail.comは、GSUITE組織によって管理されている共有フォルダにフォルダを移動することはできません。 そして、XXXXX@gmail.comは、GSUITEユーザー内のユーザーに所有者を変更することはできません。

しかし、このような状況でもユーザーはフォルダのコンテンツを読むことができるため、コンテンツのコピーは可能です。

このスクリプトは、宛先フォルダが別のGSUITE組織によってアクセス可能で管理されている場合でも、フォルダを再帰的に他のフォルダにコピーします。

そういうページもあるけど

再帰的にフォルダをコピーするためのウェブページは存在しますが、 GSUITE組織内のユーザーは、他のユーザーが管理するスクリプトを使用することが制限されることがあります。 そのため自分でスクリプトを作成して実行するようにしました。

こちらのスクリプトを、お使いのGSUITEユーザで実行すれば、フォルダの中身をコピーできます。

コード

Google Drive のフォルダを開いた時のURLから、フォルダのIDを取得します。そのIDをコードの該当箇所に記入してスクリプトを実行すると、フォルダ内のコンテンツがコピーされます。

Gist にも掲載しています。