2

现在在尝试使用 PowerShell 下载文件时,我有以下内容

$client = new-object System.Net.WebClient
$client.DownloadFile($AGRIDATAMISCURL,$TESTAGRIDATAMISCZIP)

其中 $AGRIDATAMISCURL 是一个看起来像“ https://drive.google.com/file/d/ <...>”的 URL,而 $TESTAGRIDATAMISCZIP 看起来像“C:\test\A.zip”

此脚本不会返回错误,但它下载的文件基本上是一个 HTML 文件,其中包含登录 Google 的提示。还有其他方法可以下载“与我共享”的文件吗?

4

1 回答 1

2

先分享文件

Google 云端硬盘中的文件必须先可供共享,然后才能下载。从 PowerShell 运行时没有安全上下文,因此文件下载失败。(要检查这一点,请使用 `.html` 扩展名重命名文件,并在文本编辑器中查看)。

注意:以下解决方案假定链接指向非安全关键文件,或者链接只会提供给可以信任访问的人(链接是 https,因此通过传输加密)。另一种方法是以编程方式向 Google 进行身份验证 -此答案中解决的问题。

要共享文件,请在 Google Drive 中:

  1. 右键单击该文件,然后选择获取共享链接

    获取可共享链接


2.开启链接分享

链接分享开启


  1. 单击共享设置

共享设置


  1. 确保知道链接的任何人都可以查看(请注意,在公司环境中,必须与组织外部的人共享链接才能绕过登录)

与他人分享


然后以编程方式下载

  1. 然后,代码可用于下载文件(在本例中使用 Windows PowerShell):

# Download the file
$zipFile = "https://drive.google.com/uc?export=download&id=1cwwPzYjIzzzzzzzzzzzzzzzzzzzzzzzz"
Invoke-WebRequest -Uri $zipFile -OutFile "$($env:TEMP)\myFile.doc"

  • 将 替换为1cwwPzYjIzzzzzzzzzzzzzzzzzzzzzzzz上面第 2 步中可共享链接设置中的 ID 代码。
于 2019-12-28T00:33:32.077 回答