我正在尝试使用 mulesoft 通过 Java 代码将文件上传到文件夹,但出现 404 文件未找到错误
I am trying upload a file using mulesoft via Java code to a folder getting 404 file not found error
在 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."
}
"File not found: folderId.",
确切地说,您提供的文件夹 ID 对您用于 运行 您的应用程序的用户不可用。
您正在使用服务帐户。您需要记住的是服务帐户不是您。服务帐户是一个虚拟用户,拥有自己的 google 驱动器帐户。
您需要与服务帐户共享此文件夹。将服务帐户电子邮件地址放入 google 驱动器并与其共享该目录。然后它将有权访问相关文件夹。
如果您使用的是 gsuite,则需要为服务帐户正确设置 Domain wide delication 以授予其访问域中文件的权限。执行 file.list 会在您正确设置后告诉您,因为届时它将能够看到文件。
在 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."
}
"File not found: folderId.",
确切地说,您提供的文件夹 ID 对您用于 运行 您的应用程序的用户不可用。
您正在使用服务帐户。您需要记住的是服务帐户不是您。服务帐户是一个虚拟用户,拥有自己的 google 驱动器帐户。
您需要与服务帐户共享此文件夹。将服务帐户电子邮件地址放入 google 驱动器并与其共享该目录。然后它将有权访问相关文件夹。
如果您使用的是 gsuite,则需要为服务帐户正确设置 Domain wide delication 以授予其访问域中文件的权限。执行 file.list 会在您正确设置后告诉您,因为届时它将能够看到文件。