首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GDrive禁止复制和下载

GDrive禁止复制和下载
EN

Stack Overflow用户
提问于 2020-02-13 07:26:47
回答 1查看 206关注 0票数 0

如何在没有高级驱动器服务的情况下管理共享功能:“禁用复制和下载”?

目前我解决这个问题的方法是:

代码语言:javascript
复制
function mySolveAboutAdvancedService(id) {
  var file = Drive.Files.get(id);
  file.labels.restricted = true;
  Drive.Files.update(file, id);
}

为什么我可以更改所有设置,但不能在没有高级驱动器服务的情况下更改此设置?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-02-13 08:06:30

  • 您希望在不使用高级Google服务的情况下实现以下脚本。

var file = Drive.Files.get(id);file.labels.restricted = true;Drive.Files.update(file,id);

  • 您想知道如果不使用上面的脚本,“禁止复制和下载”无法实现的原因。

如果我的理解是正确的,那么这个答案如何?请将此视为几个可能答案中的一个。

问题和解决方法:

谷歌高级服务的驱动接口使用驱动接口v2。在这种情况下,labels.restricted是用于驱动接口v2的,并且,官方文档如下所述。

labels.restricted:警告:此项目已弃用。已弃用-请改用copyRequiresWriterPermission

这样,当驱动接口v3使用{labels: {restricted: true}}时,不能在没有错误的情况下使用它。但是,当驱动接口v2与UrlFetchApp一起使用时,仍然可以使用{labels: {restricted: true}}。通过这个,你的脚本使用高级谷歌服务的驱动API工作。

为了在不使用高级Google服务的情况下实现您的脚本,请直接向Drive API v3的端点请求(本例中使用v3 )。使用UrlFetchApp的{copyRequiresWriterPermission: true}请求体。示例脚本如下所示。

示例脚本:

代码语言:javascript
复制
function mySolveAboutAdvancedService() {
  var id = "###";  // Please set the file ID.

  var url = "https://www.googleapis.com/drive/v3/files/" + id;
  var params = {
    method: "patch",
    contentType: "application/json",
    payload: JSON.stringify({copyRequiresWriterPermission: true}),
    headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}
  };
  var res = UrlFetchApp.fetch(url, params);
  Logger.log(res.getContentText())
}

注意:

  • 如果您想将v2驱动接口与UrlFetchApp配合使用,下面的脚本如何?在Drive API v2中,可以同时使用{labels: {restricted: true}}{copyRequiresWriterPermission: true}

函数mySolveAboutAdvancedService() { var ID = "###";//请设置文件id,var url = "https://www.googleapis.com/drive/v2/files/“+ id;var params ={ method:"put",contentType:”应用程序/json“,有效负载: JSON.stringify({copyRequiresWriterPermission: true}),//或者有效负载: JSON.stringify({labels:{restricted: true}}) headers:{Authorization:”###“+ ScriptApp.getOAuthToken()} };var res = UrlFetchApp.fetch(url,params);Logger.log(res.getContentText()) }

参考文献:

如果我误解了你的问题,这不是你想要的方向,我道歉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60198377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档