复制文件时出错 Google Drive SDK
Error copying a file Google Drive SDK
从昨天开始,在几个月未更改的代码中,我们在使用 Java 驱动器 API.
复制文件时遇到错误
我们使用的方法:
service.files().copy(originalID, copiedFile).execute();
并得到:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 OK
{
"code" : 500,
"errors" : [ {
"domain" : "global",
"message" : "Internal Error",
"reason" : "internalError"
} ],
"message" : "Internal Error"
}
完整代码为:
public File copiarArchivo(Drive service, String originalID, String tituloCopia) {
File copiedFile = new File();
copiedFile.setTitle(tituloCopia);
try {
return service.files().copy(originalID, copiedFile).execute();
} catch (IOException e) {
System.out.println("Un error ocurrio: " + e);
}
return null;
}
Drive 服务已初始化,我们有一个不为空的 OriginalID。
由于这是一个内部错误,可能会随着时间的推移自动解决。 Google 端有些东西不工作,你可能没事。很多人似乎都有这个问题,然后就消失了。
这与您遇到的问题不完全相同,但它是一个 500 错误,可以自动解决:
https://code.google.com/p/gdata-issues/issues/detail?id=6352
您似乎在使用电子表格 API 使用的旧 KeyID。使用驱动器 API 复制文件时不再允许使用该 ID。您需要获取新的 FileID 并在复制语句中使用它而不是旧的。
您可以按照以下示例获取新 ID:
public String getNewFileID(Drive service, String oldSpreadsheetsKeyID){
File file = service.files().get(oldSpreadsheetsKeyID).execute()
String alternateLink = file.getAlternateLink();
String[] aux1 = alternateLink.split("/spreadsheets/d/");
String[] aux2 = aux1[1].split("/edit?");
String newFileID = aux2[0];
return newFileID;
}
这将从完整的 URL 中恢复 ID。不过,拆分 URL 可能是一种更有效的方法。您可以使用此 ID 进行复制。
从昨天开始,在几个月未更改的代码中,我们在使用 Java 驱动器 API.
复制文件时遇到错误我们使用的方法:
service.files().copy(originalID, copiedFile).execute();
并得到:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 OK
{
"code" : 500,
"errors" : [ {
"domain" : "global",
"message" : "Internal Error",
"reason" : "internalError"
} ],
"message" : "Internal Error"
}
完整代码为:
public File copiarArchivo(Drive service, String originalID, String tituloCopia) {
File copiedFile = new File();
copiedFile.setTitle(tituloCopia);
try {
return service.files().copy(originalID, copiedFile).execute();
} catch (IOException e) {
System.out.println("Un error ocurrio: " + e);
}
return null;
}
Drive 服务已初始化,我们有一个不为空的 OriginalID。
由于这是一个内部错误,可能会随着时间的推移自动解决。 Google 端有些东西不工作,你可能没事。很多人似乎都有这个问题,然后就消失了。
这与您遇到的问题不完全相同,但它是一个 500 错误,可以自动解决:
https://code.google.com/p/gdata-issues/issues/detail?id=6352
您似乎在使用电子表格 API 使用的旧 KeyID。使用驱动器 API 复制文件时不再允许使用该 ID。您需要获取新的 FileID 并在复制语句中使用它而不是旧的。
您可以按照以下示例获取新 ID:
public String getNewFileID(Drive service, String oldSpreadsheetsKeyID){
File file = service.files().get(oldSpreadsheetsKeyID).execute()
String alternateLink = file.getAlternateLink();
String[] aux1 = alternateLink.split("/spreadsheets/d/");
String[] aux2 = aux1[1].split("/edit?");
String newFileID = aux2[0];
return newFileID;
}
这将从完整的 URL 中恢复 ID。不过,拆分 URL 可能是一种更有效的方法。您可以使用此 ID 进行复制。