使用Mulesoft中的服务帐户(该服务帐户具有对该文件夹的完全读写权限),当我在代码中未将文件夹指定为父文件夹时,我可以上传文件,但是当我指定父文件夹字段时,它会用找不到文件错误。
File fileMetadata = new File();
fileMetadata.setName(filename);
fileMetadata.setParents(Collections.singletonList(folderId));
java.io.File filePath = new java.io.File(pathOfFile);
FileContent mediaContent = new FileContent(extension, filePath);
try {
File result = customGoogleSheetService.getService().files().create(fileMetadata, mediaContent)
.setFields("id, parents")
.execute();
System.out.println("File ID: " + result.getId());
//return result;
}catch (Exception ex) {
ex.printStackTrace();
}
{
"code" : 404,
"errors" : [ {
"domain" : "global",
"location" : "fileId",
"locationType" : "parameter",
"message" : "File not found: folderId.",
"reason" : "notFound"
} ],
"message" : "File not found: folderId."
}
答案 0 :(得分:0)
“找不到文件:folderId。”,
完全意味着您提供的文件夹ID对您用于运行应用程序的用户不可用。
您正在使用服务帐户。您需要记住的是,服务帐户不是您。服务帐户是具有自己的Google云端硬盘帐户的虚拟用户。
您需要与服务帐户共享此文件夹。将服务帐户的电子邮件地址放入Google驱动器,并与该目录共享。然后它将有权访问该文件夹。
如果您正在使用gsuite,则需要正确设置Domain wide delication,以使服务帐户授予其对域中文件的访问权限。做一个文件。列表会在设置正确后告诉您,因为那时它可以查看文件。