I wrote a little Google Script that 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