当我看到你的问题时,起初我以为这个区别与垃圾箱有关。所以我做了一个示例脚本来验证这一点。
作为示例文件,我将 2 个大小为 100 KB 的文本文件放在已清理的 Google Drive 上。我将一个文件放入了垃圾箱。正如您所知,因为 Google Docs 没有文件大小。
示例脚本:
要使用此示例,请在 Advanced Google Services 和 Google API 控制台启用 Drive API。请执行run()。
function run(){
var res;
res = getTotalFilesize(true)
Logger.log(res)
res = getTotalFilesize(false)
Logger.log(res)
}
function getTotalFilesize(trash) {
var token = "dummy";
var filesize = 0;
var numberOfFilesWithSize = 0;
var numberOfFiles = 0;
while (token) {
var res = Drive.Files.list({
q: trash ? "" : "trashed=false",
maxResults: 1000,
fields: "items(id, fileSize), nextPageToken",
pageToken: token && token != "dummy" ? token : ""
});
token = res.nextPageToken;
numberOfFiles += res.items.length;
res.items.forEach (function(e) {
if (e.fileSize) {
numberOfFilesWithSize++;
filesize += parseInt(e.fileSize, 10);
}
});
}
return {
IncludeTrash: trash ? "yes" : "no",
TotalFilesize: filesize,
NumberOfFilesWithSize: numberOfFilesWithSize,
TotalFiles: numberOfFiles
};
}
结果:
{NumberOfFilesWithSize=2.0, TotalFiles=2.0, TotalFilesize=200000.0, IncludeTrash=yes}
{NumberOfFilesWithSize=1.0, TotalFiles=1.0, TotalFilesize=100000.0, IncludeTrash=no}
getStorageUsed() 和 getSize() 的结果分别为 200000.0 和 100000.0。共享文件包含在垃圾箱之外。所以当共享一个大小为 100 kBytes 的文件时,以上两个结果都加了 100 kBytes。
讨论:
从这些结果来看,我认为getStorageUsed()和getSize()的区别在于文件是否包含在垃圾箱中。
但我认为可能还有其他因素。如果你使用这个样本,我可以问你关于你的结果吗?如果您的结果与我的估计不一样,我们可以知道其他因素的存在。
如果这些信息对您有帮助,我很高兴。
补充:
您还可以使用Drive.About.get() 检索存储信息。谢谢@Sagar Kanabar。
var obj = Drive.About.get();
var out = {
usageInDrive: obj.quotaBytesUsed,
usageInTrash: obj.quotaBytesUsedInTrash
};
Logger.log(out)
>>> {usageInTrash=100000, usageInDrive=200000}
由此可知Drive中有100kb,Trash中有100kb。