将G Suite驱动器文件和文件夹从一个域复制到另一个域

问题描述 投票:0回答:1

我正在尝试从G Suite用户的驱动器查询所有文件和文件夹的列表,并将所有这些文件复制到另一个域用户。

无论如何,我都能获得所有文件的列表,但是我无法将这些文件复制到另一个域。我已经阅读了有关共享驱动器文件的一些参考资料,但不了解授予权限,以便目标域可以复制文件。

如果有人可以帮助我解决这个问题,我将很高兴。

public void Execute(){

    string strFileId = "";
    //get list of all files from source domain(eg. [email protected])
    IList<Google.Apis.Drive.v3.Data.File> fileList = service.getDriveFiles();

    Google.Apis.Drive.v3.Data.File title = new Google.Apis.Drive.v3.Data.File();
    //loop files list
    foreach (var fileItem in fileList)
    {
       strFileId = fileItem.Id;
       title.Name = fileItem.Name;
      //copy files to destination domain(eg. [email protected]) with file ID
       service.Files.Copy(title, strFileId).Execute();
    }
}


private IList<Google.Apis.Drive.v3.Data.File> getDriveFiles()
{
   // Define parameters of request.
   Google.Apis.Drive.v3.FilesResource.ListRequest FileListRequest = source_drive_service.Files.List();
   // get all files
   FileListRequest.Fields = "nextPageToken, files(*)";

   IList<Google.Apis.Drive.v3.Data.File> files = FileListRequest.Execute().Files;
   return files;
}
c# google-drive-api
1个回答
0
投票

有很多解决方法,但是一种简单的方法是:

  1. 使用Drive API,通过Files.list()获取所有文件(包括Drive中的文件夹)的列表。
  2. 对于每个文件,您可以Files.list()到新所有者(例如域B的管理员)。

注意: 文件传输时,先前所有者的角色被降级为作家。

无论如何要为两个不同的项目使用两个驱动器,都需要在两个项目中都启用驱动器API,并需要有效的凭据才能访问两个驱动器。

© www.soinside.com 2019 - 2024. All rights reserved.