【问题标题】:Download Using Google Drive API with the original filename and extension使用带有原始文件名和扩展名的 Google Drive API 下载
【发布时间】:2023-04-08 20:05:01
【问题描述】:

正如 Google Drive API 文档所说的下载文件:

https://www.googleapis.com/drive/v3/files/FILEID?alt=media%26key=API_KEY

如果我们将此链接粘贴到 Chrome 或 Safari,它将开始下载。

但问题是

  • 名称改为FIELDID
  • 扩展已消失

例如

我有文件 mywork.fbx 我上传到谷歌驱动器,文件 ID 是 ABCDEFG

然后我去下面的链接。

https://www.googleapis.com/drive/v3/files/ABCDEFG?alt=media%26key=MYAPIKEY

我得到了一个名为 ABCDEFG 的文件,没有扩展名

它应该是 mywork.fbx 或 anyname.fbx 而不仅仅是 ABCDEFG

试过

  • 添加 &download="mywork.fbx"
  • 使用 PHP header('Content-Disposition: attachment; filename="mywork.fbx"'); 文件名是 mywork.fbx 但带宽也是我的 这不仅是 Google Drive! !
$file_url = 'https://www.googleapis.com/drive/v3/files/ABCDEFG?alt=media&key=KEY';
header('Content-Disposition: attachment; filename="mywork.fbx"');
readfile($file_url);
  • 查看堆栈溢出中的文章,但找不到合适的文章

【问题讨论】:

    标签: google-api google-drive-api


    【解决方案1】:
    • 您想使用浏览器下载不是 Google 文档的文件。
    • 您想下载一个文件名与原始文件的文件名和扩展名相同的文件。
    • 您正在使用 API 密钥。
      • 在这种情况下,文件是公开共享的。

    如果我的理解是正确的,那么这个答案呢?在此答案中,webContentLink 用作端点。 The official document 如下。

    webContentLink

    使用基于 cookie 的身份验证在浏览器中下载文件内容的链接。如果内容是公开共享的,则无需任何凭据即可下载内容。

    修改端点:

    请尝试使用您的浏览器访问以下端点。

    https://drive.google.com/uc?export=download&id={fileId}
    
    • 使用时请设置文件ID。在这种情况下,该文件不是 Google 文档。
    • 当它访问上述端点时,可以检索到具有文件名的文件。

    参考:

    如果我误解了您的问题并且这不是方向,我深表歉意。

    【讨论】:

    • 只对小文件有效,对大文件无效,大文件会重定向到病毒扫描警告页面而不是立即下载。
    • @chatdev 感谢您的回复。是的。在您的问题中,我可以理解您想使用浏览器下载文件。所以我认为这适合你的情况。如果我的理解不正确,请告诉我。另外我能问你关于你的目标的详细信息吗?
    • 我的目标不是直接使用浏览器;我想安装一个内部 iOS 应用程序,所以我必须创建 manifest.plist 有一个关于 URL 文件的字段。所以我尝试使用 Header Content-Disposition 创建一个 PHP,这是可行的,但带宽也是我的服务器,而不仅仅是谷歌。我想要一个不会立即使用正确的扩展名重定向和下载的 URL。 PHP方式几乎是正确的,但它不应该占用服务器带宽。可能PHP的问题是readfile(URL)函数
    • @chatdev 感谢您的回复。您希望端点用于直接下载具有原始文件名的大文件。我能理解你这样的目标。如果我的理解是正确的,那么在您的情况下,以下两种方法如何? 1、this method呢?在这种情况下,可以下载文件而不显示用于运行病毒扫描的重定向页面。此外,在这种情况下,不需要 API 密钥。
    • @chatdev 感谢您的回复。我很高兴你的问题得到了解决。也谢谢你。
    【解决方案2】:

    查看https://developers.google.com/drive/api/v3/reference/filesoriginalFilename 属性。您可以在内容处置标头中使用它,请参阅https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

    【讨论】:

      猜你喜欢
      • 2022-01-26
      • 2021-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-17
      • 2017-11-15
      • 1970-01-01
      相关资源
      最近更新 更多