1 回答

TA贡献1780条经验 获得超1个赞
当我看到你的脚本时,似乎在上传文本文件时,权限数据包含在元数据中。不幸的是,这不能使用。我认为这就是您的问题与 相关的原因writable。在这种情况下,文件上传后,请使用“权限:创建”。当你的脚本被修改时,下面的修改怎么样?
从:
res, err := srv.Files.Create(
&drive.File{
Parents: []string{"17n-EpJcGg0DmmWqSoJ75iIUdXDP7neoH"},
Name: "banana.txt",
Permissions: []*drive.Permission{
{
Role: "reader",
Type: "anyone",
},
},
},
).Media(file, googleapi.ChunkSize(int(stat.Size()))).Do()
if err != nil {
log.Fatalln(err)
}
fmt.Printf("%s\n", res.Id)
到:
res, err := srv.Files.Create(
&drive.File{
Parents: []string{"17n-EpJcGg0DmmWqSoJ75iIUdXDP7neoH"},
Name: "banana.txt",
},
).Media(file, googleapi.ChunkSize(int(stat.Size()))).Do()
if err != nil {
log.Fatalln(err)
}
fmt.Printf("%s\n", res.Id)
res2, err := srv.Permissions.Create(res.Id, &drive.Permission{
Role: "reader",
Type: "anyone",
}).Do()
通过此修改,上传的文本文件被公开共享。
笔记:
从您的评论来看I already share my parent_id folder (the folder I want to upload files and share with anyone) with the service_account email as editor permission.,如果您想将文本文件上传到公共共享文件夹"17n-EpJcGg0DmmWqSoJ75iIUdXDP7neoH",我认为也可以使用以下修改后的脚本。因为,在这种情况下,当一个文本文件上传到公共共享文件夹时,上传的文本文件与该文件夹具有相同的权限。
res, err := srv.Files.Create(
&drive.File{
Parents: []string{"17n-EpJcGg0DmmWqSoJ75iIUdXDP7neoH"},
Name: "banana.txt",
},
).Media(file, googleapi.ChunkSize(int(stat.Size()))).Do()
if err != nil {
log.Fatalln(err)
}
fmt.Printf("%s\n", res.Id)
- 1 回答
- 0 关注
- 146 浏览
添加回答
举报