Google ドライブのフォルダ構造と共有モデルを簡素化
Google Cloud Japan Team
※この投稿は米国時間 2020 年 3 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。
G Suite チームは、Google ドライブでのコンテンツの整理と共有を容易にするとともに、さまざまなドライブの関連ファイルを参照しやすくすることに力を注いでいます。
こうした取り組みから生まれたのが、Google ドライブ内のほかのファイルへのポインタとして機能するドライブ ショートカットです。ショートカット ファイルは、共有ドライブや個々のユーザーのマイドライブなど、Google ドライブ内のあらゆる場所に保存することができます。
Google Drive API を使っている方は、このほど一般提供が開始されたショートカット機能に合わせる形で、今後の仕様変更に対応する必要があります。そうすれば、アプリケーションが正しく動作し続けることが保証され、Google ドライブの最新機能を利用できるようになります。
2020 年 9 月 30 日以降は、複数のフォルダにアイテムを配置することができなくなり、アイテムの位置は 1 つだけになります。この新しいモデルでは、ショートカットを使用してアイテムを複数の階層に整理します。このように Google ドライブにおいてフォルダ構造と共有モデルが簡素化されたことで、Google Drive API の一部のエンドポイントで動作に変更が生じます。
開発者は、この新モデルにオプトインしてアプリケーションの開発やテストを行えるようになりました。影響を受けるエンドポイントには新しい enforceSingleParent リクエスト パラメータが導入され、新しい動作をオプトインするには Google Drive API へのリクエストでこのパラメータの値を true に設定します。事前にオプトインすることを選択した場合は、仕様が変更されてもアプリケーションの動作は変更されません。
私たちは 2020 年 9 月 30 日以降、ドライブ内のすべてのアイテムが親を 1 つしか持てないようにする新しいモデルに移行します。それ以外の親子関係は、元の親フォルダ内のショートカットになります。階層構造のプロパティに基づき、保持するうえで最も適切なものを親にします。
Google Drive API の動作の具体的な変更点は次のとおりです。
まだ親を持たないアイテムには親を 1 つだけ追加できます。影響を受けるのは、children.insert (v2)、files.update (v2 / v3)、parents.insert (v2) エンドポイントです。新設の canAddMyDriveParent を使用すれば、アイテムにすでに親があるかどうか、アイテムに親を追加する権限をユーザーが有しているかどうかをチェックできます。
新しいアイテムの作成要求時に複数の親を指定することはできなくなりました。影響を受けるのは、 files.insert (v2)、files.create (v3)、files.copy (v2 / v3) エンドポイントです。
アイテムを移動するときは、アイテムの読み出し権限だけでなく、アイテム共有の権限が必要になります。共有権限がない場合はショートカットを作成しなければなりません。影響を受けるのは、files.update (v2 / v3) エンドポイントです。アイテム移動の権限をユーザーが有しているかどうかは、canMoveItemWithinDrive でチェックできます。
アイテムのオーナーは、アイテムを新しい位置に移動したり、アイテムが現在持つすべての親を削除したり(親に対する権限がなくてもかまいません)することができます。それらの親から継承された権限はすべてなくなり、アイテムに直接追加された権限は維持されます。従来、オーナーはアイテムを任意のフォルダに追加でき、それによって親が複数になることがありましたが、このオプションは使えなくなりました。影響を受けるのは、children.insert (v2)、files.update (v2 / v3)、parents.insert (v2) エンドポイントです。
これまではアイテムの親がいなくなるような操作がありましたが、オーナーのマイドライブが親になるように動作が変わりました。影響を受けるのは、children.delete (v2)、files.update (v2 / v3)、parents.delete (v2) エンドポイントです。
オーナーを変更するときには、アイテムを新しいオーナーのルート フォルダに移動するか、もしくは元の位置に残すかを指定できます。移動を選択した場合は、移動する前の親から継承した権限は失われますが、アイテムに直接追加された権限は維持されます。前のオーナーは、変更前と同様にアイテムに対する編集権限を持ち続けます。影響を受けるのは、permissions.insert (v2)、permissions.create (v3) エンドポイントです。
詳細は、最新版の開発者向けドキュメントをご覧ください。親の単一化のためのページ(v2、v3)と、移行に必要な手順のページ(v2、v3)が追加されています。また、API リファレンスは、影響を受けるエンドポイントのコンテキストに合わせて新パラメータを説明するものに書き換えられています。ドライブのショートカットによってアイテムの整理や共有の方法が簡素化され、アプリケーションやユーザーがこれらの新機能を活用できるようになることを、私たちは楽しみにしています。
- By Vesa Pirila, Software Engineer, Google Drive