如何在从Google Site添加时为Google云端硬盘文件/文件夹设置权限

时间:2014-07-17 09:14:29

标签: google-apps-script google-drive-api google-sites

我是谷歌网站的新用户,我创建了一个测试谷歌网站,并将谷歌驱动器中的一些页面文件添加到页面中。

我的问题是,通过任何Google Apps脚本从谷歌驱动器添加文件/文件夹时,是否可以从谷歌网站设置权限?或Google Drive SDK?

我还概述了有关添加UI元素/ html元素的Google Apps脚本。 我还使用Google Drive SDK执行一些基本身份验证。

1-拥有所有这些信息,任何人都可以告诉我如何执行权限操作。 2-我想要问的另一件事是,如果我们在文件柜模板中上传文件,我们可以设置任何类型的权限或删除该文件的下载链接按钮。 ?

2 个答案:

答案 0 :(得分:1)

Apps脚本有一项名为云端硬盘的服务。云端硬盘有一个名为“ DriveApp 的类。 DriveApp可以创建,保存和检索文件。一旦引用了文件,就可以使用其他类,属性和方法。

setSharing method - Google Documentation

答案 1 :(得分:1)

感谢你的回答@Sandy很高兴你的建议/想法我能够创建一个简单的脚本,在创建这个脚本后,我相信我也能够创建一个复杂的脚本。 我创建了一个脚本,可以在google网站的页面中创建一个表单。此表单包含我的谷歌驱动器文件的下拉列表和一个输入文件,我将在其中添加一个电子邮件地址。 并在最后一个提交按钮。

按下提交按钮后,脚本会工作,因为如果他有链接,它将授予作为文件查看者的电子邮件的选定权限。

在Google Site的Apps脚本部分中创建一个空白脚本。

通过UI服务添加一些UI

function doGet() {
 // create ui element
 var app = UiApp.createApplication();
 // create form 
 var form = app.createFormPanel();
 // create area or panel
 var flow = app.createFlowPanel();
 // create list box for files
 var element_file = app.createListBox().setId('file_name').setName('file_name');
// add first elemnt
element_file.addItem('Please Select','');
// get drive files
var files = DriveApp.getFiles();
while (files.hasNext()) {
var file = files.next();

  element_file.addItem(file.getName(),file.getId());
 }
  flow.add(element_file); 
  var element_text=app.createTextBox().setId('email').setName('email');
  flow.add(element_text); 
 flow.add(app.createSubmitButton("Submit"));
  form.add(flow);
 app.add(form);  
  return app;
 }

之后我处理通过帖子提交的数据

 function doPost(e) {
   var app = UiApp.getActiveApplication();
   var email = e.parameter.email;
   var file_name = e.parameter.file_name;
   var public_file = DriveApp.getFileById(file_name);
   public_file.addViewer(email);
   return app;
}

之后,您可以检查Google云端硬盘中特定文件的权限。 您也可以添加成功消息。 在此之后转到文件的发布菜单,选择部署为Web应用程序,然后选择所需的东西。请记住,请仅选择执行脚本作为我选项,因为您列出了所有文件。 然后转到要添加脚本的页面只需编辑/添加页面编辑器中的新页面,只需插入Apps脚本即可。

道歉,这是我第一次使用谷歌应用程序脚本,如果我错过了什么或者我没有遵循任何规则等。

谢谢,