ユーザーアカウントのプロビジョニング解除における一般的な要件の1つが、ユーザーアカウント内に保存されているすべてのファイルとフォルダを別のユーザーアカウント、またはサービスアカウントなどの長期保存用の場所に転送することです。
Box内でこれを実行するのに使用される一般的な方法は以下の2つです。
- すべてのコンテンツをあるユーザーから別のユーザーに直接移動する、APIを使用する。
- コラボレーション転送の方法を使用して、一度に1つのファイルまたはフォルダの所有権を、あるユーザーから別のユーザーに変更する。
転送中は、ユーザーが所有するファイルにアクセスできなくなります。また、移動中もユーザーが所有する共有コンテンツにアクセスできない可能性があります。コンテンツの量によっては、この操作にかなりの時間がかかる場合があります。
所有フォルダの移動APIの使用
は、あるユーザーが所有するコンテンツ全体を別のユーザーに移動することを目的に設計されています。
所有フォルダの移動APIは、同期プロセスとして実行されるため、ソースユーザーのフォルダ全体に多数の項目がある場合、レスポンスが遅くなる可能性があります。
転送エンドポイントを呼び出すには、転送元のユーザーIDと転送先のユーザーIDを指定します。
await client.transfer.transferOwnedFolder(
sourceUser.id,
{
ownedBy: {
id: targetUser.id,
} satisfies TransferOwnedFolderRequestBodyOwnedByField,
} satisfies TransferOwnedFolderRequestBody,
{
queryParams: { notify: false } satisfies TransferOwnedFolderQueryParams,
} satisfies TransferOwnedFolderOptionalsInput,
);
コラボレーション転送の使用
コラボレーション転送は、を使用して、単一のファイルまたはフォルダの所有権をあるユーザーから別のユーザーに即座に変更するプロセスです。
この方法では、単一のファイルまたはフォルダの所有権を即時に転送します。ただし、この方法でルート (すべてのファイルおよびフォルダ) を別のユーザーに転送することはできません。
transfer_from_userからtransfer_to_userへの転送の一般的なプロセスは以下の手順に従います。
転送先ユーザーを共同所有者として追加
最初の手順は、転送するファイルまたはフォルダへのco-ownerアクセス権限を持つコラボレータとして、transfer_to_userアカウントを追加することです。
transfer_from_userアカウントとして呼び出しを行い、エンドポイントを使用してtransfer_to_userを共同所有者として追加します。
curl -i -X POST "https://api.box.com/2.0/collaborations" \
-H "authorization: Bearer <ACCESS_TOKEN>" \
-H "content-type: application/json" \
-d '{
"item": {
"type": "file",
"id": "11446498"
},
"accessible_by": {
"type": "user",
"login": "user@example.com"
},
"role": "editor"
}'
転送先ユーザーとしてコラボレーションIDを取得
次の手順では、コラボレーション情報を取得するリクエストをtransfer_to_userアカウントとして実行します。返されるコラボレーションオブジェクトには、最後の手順で使用するコラボレーションIDが含まれます。
transfer_to_userアカウントとして呼び出しを実行し、を使用して、転送するファイルまたはフォルダのIDのコラボレーションを取得します。コラボレーションIDをキャプチャします。
curl -i -X GET "https://api.box.com/2.0/collaborations/1234" \
-H "authorization: Bearer <ACCESS_TOKEN>"
転送元ユーザーを所有者として削除
最後の手順は、ファイルまたはフォルダの所有者としてtransfer_from_userアカウントを削除することです。これは、を使用して行います。
transfer_to_userアカウントとして呼び出しを実行し、ファイルまたはフォルダのコラボレータとしてtransfer_from_userを削除します。
curl -i -X DELETE "https://api.box.com/2.0/collaborations/1234" \
-H "authorization: Bearer <ACCESS_TOKEN>"
これにより、ファイルまたはフォルダの所有者はtransfer_to_userアカウントになり、transfer_from_userアカウントはアクセスできなくなります。