我正在使用Google Drive API v3和Go SDK来监控驱动器上的新文件和已删除文件。我查看了Google Drive API v3 documentation,它们提供了2个文件属性,似乎可以让人们确定文件是否被删除。
删除文件后,文件将显示在更改列表中,但两个属性均为false。
我可以使用哪些属性,服务或电话来确定是否已移除某些内容?
package main
import (
"fmt"
"strconv"
"google.golang.org/api/drive/v3"
)
func main() {
// More code is required to setup the service, but I didn't include it.
srv := new(drive.Service)
//......
token, _ := srv.Changes.GetStartPageToken().Do()
// ..... some time passes
// I right click file and select "Remove" from google drive using web app.
// Now I list any changes in MyDrive
changes, _ := srv.Changes.List(token.StartPageToken).IncludeRemoved(false).RestrictToMyDrive(true).Do()
for _, c := range changes.Changes {
fmt.Println("File name: " + c.File.Name) // I get the expected file name
fmt.Println("Trash: " + strconv.FormatBool(c.File.Trashed)) //false
fmt.Println("Removed: " + strconv.FormatBool(c.Removed)) //false
fmt.Println("ExplicitlyTrashed: " + strconv.FormatBool(c.File.ExplicitlyTrashed)) //false
}
}
答案 0 :(得分:0)
您应该将IncludeRemoved
设置为true并将RestrictToMyDrive
设置为false - 至少在您调查此缺失的更改问题时。医生说:
includeRemoved boolean是否包含指示项目已离开更改列表视图的更改,例如删除或丢失访问权限。 (默认值:true)
和
restrictToMyDrive boolean是否将结果限制为My Drive层次结构内的更改。这省略了对文件的更改,例如Application Data文件夹中的文件或尚未添加到My Drive的共享文件。 (默认值:false)
编辑12月10日:您的问题是由于如果文件被删除,那么更改资源将不包含文件资源。您应该检查removed
标志的更改资源,而不检查任何文件属性,因为更改中不存在文件资源:
removed boolean文件是否已从更改列表的视图中删除,例如删除或丢失访问权限。
file nested object文件的更新状态。 如果文件尚未删除,则显示。