我正在尝试从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;
}
有很多解决方法,但是一种简单的方法是:
Files.list()
获取所有文件(包括Drive中的文件夹)的列表。Files.list()
到新所有者(例如域B的管理员)。注意: 文件传输时,先前所有者的角色被降级为作家。
无论如何要为两个不同的项目使用两个驱动器,都需要在两个项目中都启用驱动器API,并需要有效的凭据才能访问两个驱动器。