Google云端硬盘API - 上传问题 - “错误请求”

时间:2013-01-15 23:18:32

标签: java google-app-engine file-upload google-drive-api google-api-java-client

我正在开发GAE java应用程序,我需要将PDF文件上传到用户的谷歌驱动器,但上传总是失败,我不知道什么可能是错的,因为我已经检查了几个代码示例。

import com.google.api.services.drive.Drive;
import com.google.api.services.drive.model.File;

.
.
.

byte[] pdfContent = <... 52kb PDF file ...>


ByteArrayContent mediaContent = new ByteArrayContent("application/pdf", pdfContent);

  File myPDF = new File();
       myPDF.setTitle("Sample PDF");
       myPDF.setDescription("Sample PDF");

  Drive driveService = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getStoredCredential()).build();
  Drive.Files.Insert insert = driveService.files().insert(hugePDF, mediaContent);

insert.getMediaHttpUploader().setChunkSize(1024 * 1024);
File file = insert.execute();

此上传代码始终显示错误:400 OK

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

我正在使用Google驱动程序库:google-api-services-drive-v2-rev1-1.7.2-beta.jar

凭据很好,因为我能够从用户的google驱动器列出或下载文件。

1 个答案:

答案 0 :(得分:1)

我认为问题出在您的图书馆版本中。当前版本为v2-rev39-1.12.0-beta。检查http://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API。使用最新的API库版本总是更好。当我们错过一次更新时,我们遇到了很多关于BigQuery API的问题。