Bin*_*osh 2 javascript google-apps-script google-drive-api
我想检查我在 google 驱动器上上传的文件的 md5 校验和(在同一个 google 帐户内)。
我想使用 Google Apps 脚本 (script.google.com) 来执行此操作。
我已经彻底阅读了文档,但仍然不明白如何获取文件的元数据。
我发现很多使用 webAPI (v2,v3) 的例子,但它需要处理 OAuth 令牌、解析 http 响应...那么为什么会有 Google Apps 脚本呢?
这是我的工作示例,从名为“test”的文件夹中获取文件 id = 文件名,但我想调用 md5Checksum attr...
function testDrive(){
var collectionFolder = DriveApp.getFoldersByName('test');
if (collectionFolder.hasNext()){
var itemFolder = collectionFolder.next();
var collectionFile = itemFolder.getFiles();
while(collectionFile.hasNext()){
var itemFile = collectionFile.next();
Logger.log(itemFile.getId(),'=',itemFile.getName());
}
}
}
Run Code Online (Sandbox Code Playgroud)
PS:我曾经做过自己的校验和(sha256)函数来处理每个获取的文件 blob(二进制),但每个 blob 的限制约为 25mb。
在文档中,您可以看到File资源在其 JSON 表示形式中包含md5Checksum。
md5Checksum由于DriveApp 类没有包装器,因此您必须使用高级 Google 服务。此功能允许您通过 Apps 脚本环境使用 Drive API 的相同功能。在 Apps 脚本编辑器中单击Resources>Advanced Google services...>Drive API (v2)。IDE 将在您第一次运行函数时处理授权。
md5Checksum以下是使用 Drive API 高级服务检索云端硬盘文件的示例:
let files = Drive.Files.list();
for (item of files.items) {
Logger.log(item['md5Checksum']);
}
Run Code Online (Sandbox Code Playgroud)
注意:此文件内容的 MD5 校验和。仅当内容存储在 Google 云端硬盘中的文件时,才会填充此字段;它不填充 Google 文档或快捷方式文件。