【问题标题】:Google Drive MD5 checksum for files文件的 Google Drive MD5 校验和
【发布时间】:2014-06-21 03:31:05
【问题描述】:

我不是程序员,只是 Google Drive 的普通用户。我想看看文件是否正确上传。我在 OAuth 2.0 Playground 中经历了一个完整的过程,它列出了所有文件,显示了 MD5 校验和,但每个文件也显示了大量信息。如果我上传一个新文件,很难搜索它并验证它的 md5 校验和。

是否有更简单的方法(通过应用程序,也许?)显示/列出上传文件的 MD5 校验和?我想知道为什么“详细信息”窗格没有它,只列出了以字节为单位的文件大小。

【问题讨论】:

  • I wonder why the Details pane doesn't have it, only lists the file size in bytes. 因为 99.99% 的用户对上传文件的 MD5 哈希没有任何用处。
  • 你怎么知道上传的文件没有损坏?
  • 一种方法是将 md5sum 与文件一起上传。任何下载文件的人都可以使用它。
  • 谢谢,但我已经想出了办法,我将添加它作为回复。
  • @ZoeyMertes 这意味着每 100 万用户中,就有 100 个用户会感到不便……而且似乎正是这些用户的时间最有价值,并遭受了最大的经济成本。这一切都是因为缺乏远见,至少无法为那些想看到它的人提供一种展示这个细节的方法。

标签: md5 google-drive-api checksum


【解决方案1】:

编辑:注意这些说明针对 v3 API 略有更改

我想出了一种快速获取上传文件的 MD5 校验和的方法,并决定在此处也分享它。登录您的 Google Drive 帐户,然后:

访问:https://developers.google.com/drive/v3/reference/files/list

向下滚动到试试看!部分。

通过单击将“使用 OAuth 2.0 授权请求”从关闭更改为打开,然后选择:

https://www.googleapis.com/auth/drive.metadata.readonly

然后点击授权。

选择您的帐户,然后点击接受。

fields 字段中填写:

对于 v2 API:

items(md5Checksum,originalFilename)

对于 v3 API:

在 GUI 中打开“显示标准参数”以查看 字段而不是

文件(md5Checksum,originalFilename)

只获取文件名和 MD5 校验和的列表。

点击执行,您将打开一个列表,其中包含上传到 Google Drive 的所有文件及其 MD5 校验和。

【讨论】:

  • 获取当前文件名(而不是原来上传的文件名)使用items(md5Checksum,title,owners/emailAddress)
  • 是的,它通过 Oauth2 保护。请注意,在上面的答案中,他说“并单击授权”。这是三个简单的词,但其背后是一个相当复杂的凭证检查机制。如果不是您的文件并且您没有凭据,您将收到“未授权”响应,除非文件所有者已将文件公开。
  • @ElliottB 您确实授予 Google 对您的 Google Drive 的读/写访问权限。恕我直言,他们可能已经有了:-)
  • 这个答案在 2019 年仍然有效。只是 UI 有一些小的变化。例如:点击Show standard parameters链接后可以找到fields字段,Try it部分位于网页右侧。
  • 这个答案在 2020 年仍然有效,只是稍作改动。 1) 不再需要勾选,Google 0Auth 2.0默认勾选。 2) 对于v3 API,您不再需要选择“显示标准参数”; fields 位于列表底部,无需点击此链接。
【解决方案2】:

这里是列出 md5 校验和的另外三种不同的方式。

  1. 安装Google Skicka,一个用于Google Drive的命令行工具并运行skicka ls -ll / 虽然自述文件说它不是谷歌官方产品,但它托管在谷歌的 github 帐户上,所以我猜它是可以信任的。
  2. a plugin 列出了驱动器电子表格中的所有文件及其校验和。
  3. 这是我为自己创建的python3 script。它主要是从google's official examples 复制而来的。您需要获取 client_secret.json 文件并将其与脚本放在同一目录中 - here's the instruction 怎么做。

【讨论】:

    【解决方案3】:

    API 说明

    Google 开发者 - OAuth 2.0 Playground:

    第 1 步:选择和授权 API:

    第 2 步:兑换令牌的授权码:

    • 点击“兑换令牌授权码”。

    第 3 步:配置对 API 的请求:

    • 输入“请求 URI”。
    • 点击“发送请求”。

    请求 URI 指令

    文件夹中的所有文件

    获取文件夹中文件的特定字段:

    https://www.googleapis.com/drive/v3/files?q="folderId"+in+parents&fields=files(md5Checksum,+originalFilename)
    //
    

    将“folderId”替换为文件夹 ID。

    您可以使用&fields=files(*) 获取文件的所有字段。

    单个文件

    获取文件的特定字段:

    https://www.googleapis.com/drive/v3/files/fileId?fields=md5Checksum,+originalFilename
    //
    

    将“fileId”替换为文件 ID。

    您可以使用&fields=* 获取文件的所有字段。

    解析 JSON 响应

    • 打开 JavaScript 控制台。
    • 将对象保存到变量中。
    • 映射对象。
    • 复制结果。

    代码

    var response = {
      "files": [
        {
          "md5Checksum": "0cc175b9c0f1b6a831c399e269772661", 
          "originalFilename": "a.txt"
        }, 
        {
          "md5Checksum": "92eb5ffee6ae2fec3ad71c777531578f", 
          "originalFilename": "b.txt"
        }
      ]
    };
    
    
    var result = response.files.map(function (file) { return (file.md5Checksum + " *" + file.originalFilename); }).join("\r\n");
    
    console.log(result);
    copy(result);
    

    【讨论】:

    • 谢谢,它既简单又值得信赖。
    【解决方案4】:

    基于:Alex 的上述回答!

    1. 点击链接:https://developers.google.com/drive/v3/reference/files/list

    2. 点击中间的立即试用链接。

      (中间出现一个活动窗口)

    3. 活动窗口中向下滚动左窗格

    4. 在左侧窗格的fields部分下,填写

      文件(md5Checksum,originalFilename)

    5. 现在我们将限制访问范围:

      (i) 选择 Google OAuth 2.0 并清除 API 密钥 的复选框。

      (ii) 在 Google OAuth 2.0

      下展开显示范围

      (iii) 清除所有范围但保持选中该范围:

       **https: //www.googleapis.com/auth/drive.metadata.readonly**
      
    6. 现在点击蓝色的EXECUTE

      (将打开一个新的 Google 登录窗口

    7. 使用该窗口使用相应的 google 帐户登录并点击允许以允许 Google APIs Explorer 访问您的 google 驱动器中的文件.

      完成了!将打开一个新窗口,结果显示在右下代码窗格中。它会 为 各个 google 中的所有 文件 提供名称md5Checksums 驱动器帐户。

    8. 在活动窗口之外单击以关闭窗口并关闭 Google 云端硬盘 API 标签。现在,您可以根据需要退出 Google 帐户!

    【讨论】:

    • 感谢亚历克斯!
    猜你喜欢
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多