【问题标题】:How to get the content length(aka file size) from the MediaHttpDownloader? drive file.getSize() always return null如何从 MediaHttpDownloader 获取内容长度(又名文件大小)?驱动器 file.getSize() 总是返回 null
【发布时间】:2021-02-03 12:12:56
【问题描述】:

我想从 Gdrive 下载文件。所以我使用的是驱动 API v3 (java)。

这里是代码 sn-p。

Drive.Files.Get request = driveService.files().get(fileId);
// Get the file metadata
File downloadFile = request.execute();
Long fileSize = downloadFile.getSize(); // always returns null.

OutputStream out = new FileOutputStream(fileName);

request.getMediaHttpDownloader().setProgressListener(
                            new DriveDownloadProgressListener(messageQueue));
request.executeMediaAndDownloadTo(out);

这里 downloadFile.getSize() 总是返回 null。 有没有办法从 MediaHttpDownloader 获取文件大小?

【问题讨论】:

  • 这能回答你的问题吗? Google Drive: The file size is null
  • 不。我已经检查过了。
  • 在 Google-API 网站上使用 API Explorer 时是否显示了正确的尺寸?
  • 是的,我尝试使用“大小”字段获取请求。显示正确的尺寸

标签: java google-drive-api google-api-client


【解决方案1】:

我必须自己在请求中添加必填字段。

喜欢这个


Drive.Files.Get request = driveService.files().get(fileId).setFields("size");
File file = request.execute(); // contains only size field.Other fields will be empty

然后执行并得到预期的响应(它只发送自己设置的字段)

例如,如果您需要文件的名称和大小。

Drive.Files.Get request = driveService.files().get(fileId).setFields("name,size"); // name and size
File file = request.execute(); // contains only name and size field.Other fields will be empty(respective get methods will return null only)

【讨论】:

  • 如果您解决了问题,请务必将有助于“正确答案”的答案标记为“正确答案”!
  • 2天后,我会
猜你喜欢
  • 2011-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多