Share Google Drive Files with Apps Script

This Google Script saves Gmail attachments to Drive and shares the saved files with users based on rules defined in the message body itself. Here’s a sample rule:

# view@example.com, v #
# comment2@example.com, comment@example.com, c#
# edit1@example.com, edit2@example.com, e #

In the above case, the file(s) would be shared with all these users but the sharing permissions would be different. The user view@example can only view (v) the document, the users edit@example have editing permissions while others have commenting permissions.

function ShareDriveFiles() {
  var threads = GmailApp.search('subject:#share');

  for (var t in threads) {
    var messages = threads[t].getMessages();

    for (var m in messages) {
      var attachments = messages[m].getAttachments();

      if (attachments.length) {
        var body = messages[m].getPlainBody().replace(/\s*/g, '').toLowerCase();

        for (var a in attachments) {
          var rules = body.match(/(#[^#]+,[e|v|c]#)/g);

          if (rules) {
            var file = DriveApp.createFile(attachments[a]);

            for (var r in rules) {
              var line = rules[r].substr(1, rules[r].length - 2).split(',');
              for (var s = 0; s < line.length - 1; s++) {
                switch (line[line.length - 1]) {
                  case 'e':
                    file.addEditor(line[s]);
                    break;
                  case 'v':
                    file.addViewer(line[s]);
                    break;
                  case 'c':
                    file.addCommenter(line[s]);
                    break;
                  default:
                    break;
                }
              }
            }
          }
        }
      }
    }
  }
}

Amit Agarwal is a web geek, solo entrepreneur and loves making things on the Internet. Google recently awarded him the Google Developer Expert and Google Cloud Champion title for his work on Google Workspace and Google Apps Script.

Awards & Recognition

Google Developer Expert

Google Developer Expert

Google awarded us the Developer Expert title recogizing our work in Workspace

ProductHunt Golden Kitty

ProductHunt Golden Kitty

Our Gmail tool won the Lifehack of the Year award at ProductHunt Golden Kitty Awards

Microsoft MVP Alumni

Microsoft MVP Alumni

Microsoft awarded us the Most Valuable Professional title for 5 years in a row

Google Cloud Champion

Google Cloud Champion

Google awarded us the Champion Innovator award for technical expertise

Want to stay up to date?
Sign up for our email newsletter.

We will never send any spam emails. Promise 🫶🏻