Googleドライブではかねてからファイルやフォルダに複数の親フォルダをもたせることができ、Windowsなどのローカルドライブのショートカットのような使い方をすることができました。2020年3月27日にGoogleの公式ブログの記事(英語)にてショートカット機能の追加と複数フォルダへの所属機能の廃止が発表されました。今回はこちらの記事を日本語訳して発表内容の理解をしてみたいと思います。まずは、新しい機能のショートカット機能ですが、こちらに公式の説明記事(日本語)がありましたのでリンクを貼っておきます。
ショートカットの作成方法
ショートカットを作成したいフォルダやファイルがあれば、そのファイル上で右クリックを押すと項目が以前より追加されていることが確認できます。 この項目名をクリックするとショートカットを作成するフォルダを選ぶダイアログが表示されますので、作成先のフォルダを選べばショートカットファイルを追加できます。ショートカットはフォルダを指定することもできますし、ファイルを指定することもできます。ドライブにあるファイルのショートカットを共有ドライブ(旧チームドライブ)に作成することもできます。 今回の発表を読む前に『ドライブにショートカットを追加』という項目が追加されていることは気づいていたのですが、初めて見たときは『Googleドライブであればショートカットなんて意味ないじゃん、いくらでも親フォルダを追加できるし』と思っていました。しかしながら、今回の発表を読むと新機能実装に伴い複数フォルダを親フォルダに持つ機能が廃止されるということが発表に書いてありましたので、今回の機能追加に納得致しました。以前『【GAS】フォルダにファイルを追加するaddFileを完全マスター』などで複数の親フォルダを持てることをご紹介しておりましたが、2020年9月30日以降はこのやり方もできなくなりますね。 ちなみに、ショートカットファイルは次の様なアイコンのファイルになります。発表の概要
発表の内容を要約すると、以下の3点について発表がされています。
- ドライブ内のフォルダやファイルを複数のフォルダに格納することができなくなる
- フォルダやファイルは必ず一つのフォルダに格納される
- 新しく追加されるショートカット機能により、同じようなことが実現できるようになる
今まではファイルやフォルダを複数のフォルダに格納することができましたので、ショートカット機能は必要ありませんでしたが、2020年9月30日からはその機能が廃止され、ショートカットで代用することになります。
記事本文の日本語訳
Simplifying Google Drive’s folder structure and sharing models
Googleドライブのフォルダ構造と共有方法の簡略化
The G Suite team has been working hard to make it easier to organize and share content in Google Drive, and help direct users to relevant files across various drives.
G SuiteチームはこれまでにGoogleドライブ内のファイルの整理や共有の実施を簡素化するために努力をしており、この努力によってユーザーは様々なドライブに保存されている関連ファイルにいくつものドライブを横断的にアクセスする手助けをしてきました。
These efforts have resulted in Drive shortcuts, which are files that act as pointers to other files in Google Drive. Shortcut files can be stored anywhere in Google Drive, including a shared drive or an individual user’s “My Drive.”
これらの努力の結果として、ドライブショートカットという機能の実装を実現しました。ドライブショートカットとは、Googleドライブ内で他のファイルへアクセスする橋渡しとして機能するファイルになります。ショートカットファイルはGoogleドライブ上のどこにでも保存することごできます。共有ドライブや個人のマイドライブも保存場所として指定することができます。
Shortcuts, which are now generally available, will also require those of you who build on the Google Drive API to plan for some upcoming changes. This will ensure your apps continue to work properly, and enable you to take advantage of the latest features in Drive.
ショートカットファイルは、現在一般ユーザーにも利用可能になりましたが、Google Drive APIを利用してシステムを構築しているユーザーも仕様変更に対する対応が必要となります。対応を行うことで開発したアプリが今後も引き続き適切に動作するようになり、加えてGoogleドライブの最新機能の恩恵を享受することができるようになります。
Beginning Sept. 30, 2020, it will no longer be possible to place an item in multiple folders; every item will have exactly one location. In the new model, shortcuts can be used to organize content in multiple hierarchies. This simplification of Drive’s folder structure and sharing models will result in a change in the way some Google Drive API endpoints behave.
2020年9月30日から、ドライブ上のファイルを複数のフォルダに格納することができなくなります。言い換えると、ドライブ上のファイルは必ずどこか1つのフォルダに格納する必要があります。新しいやり方では、複数のフォルダ階層にファイルを整理したい場合にショートカットファイルを利用します。このドライブフォルダ構造や共有方法の簡略化によってGoogle Drive APIのエンドポイントの中には処理方法が変わるものも出てきます。
Developers are now able to opt in to the new model to develop and test their apps. We have introduced a new enforceSingleParent request parameter on affected endpoints. To opt in to the new behavior, set its value to true on the requests you make to the Google Drive API. If you choose to opt in ahead of time, the eventual enforcement will cause no further changes to your app’s behavior.
開発者は現在新しいやり方に同意してアプリの開発やテストを行うことができます。Googleでは関連するエンドポイントに対して 新しくenforceSingleParentというリクエストパラメータを用意しました。新しい挙動を試すためにはGoogle Drive APIに対してリクエスト送信時にこの値にtrueに設定してリクエストを行います。完全移行の時期を待たずに対応を行う事で、正式移行後にアプリに対して追加で変更を行う必要がなくなります。
After Sept. 30, 2020, we will begin migrating all items in Drive to a one-parent state. Any other parent-child relationships will become shortcuts in the former parent folders. We will adaptively select the most suitable parent to keep, based on the hierarchy’s properties.
2020年9月30日以降は、ドライブ上にあるすべてのアイテムが1つの親フォルダに格納されるように移行を開始します。親フォルダとして指定されなかったファイルの親子関係は解消され、親フォルダとして設定されていたフォルダにショートカットファイルを格納します。親フォルダとして設定する1つのフォルダは階層プロパティに基づき一番最適なものを選択します。
The specific changes to the API’s behavior are:
- You can only add a parent for an item that doesn’t already have one. This affects the children.insert (v2), files.update (v2 / v3) and parents.insert (v2) endpoints. You can use the new canAddMyDriveParent capability to check if an item currently has no parents and if the user has sufficient access to add a parent for the item.
- A request that creates a new item can no longer specify multiple parents. This affects the files.insert (v2), files.create (v3) and files.copy (v2 / v3) endpoints.
- Moving an item will require access to share the item. Previously, only read access to the item was required. If the requester cannot share an item, they should create a shortcut to it instead. This affects the files.update (v2 / v3) endpoint. You can use the canMoveItemWithinDrive capability to check if the user has access to move an item.
- An item’s owner will now be able to move their item into a new location, removing all of the item’s current parents, even if they don’t have access to those parents. All access inherited from those parents will be removed. Access that was added directly on the item will be preserved. Previously, the owner could add the item to any folder, causing it to become multi-parented, but this option will no longer be available. This affects the children.insert (v2), files.update (v2 / v3), and parents.insert (v2) endpoints.
- Any operation that would have previously resulted in an item no longer having parents will now result in the item being parented under its owner’s My Drive. This affects the children.delete (v2), files.update (v2 / v3), and parents.delete (v2) endpoints.
- When transferring ownership, the requester will be able to control whether the transferred item is moved to the new owner’s root or kept where it is. If they choose to move the item, any access inherited from the previous parent will be lost, but access that had been directly added to the item will be preserved. The previous owner will always maintain editor access to the item, just as they had prior to these changes. This affects the permissions.insert (v2) and permissions.create (v3) endpoints.
APIに対する具体的な変更点は次の通り:
- 親フォルダを持たないフォルダやファイルに対してのみ親フォルダを追加できます。この変更は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)のエンドポイントに影響があります。
コメント