2016-06-02 4 views
0

私はGoogleドライブに自分の仲間と共有したいフォルダがあります。 ここでのユースケースは、5分後にリンクIの共有自動有効期限を設定したい(または私のカスタム時間を設定できます)ことです。 私はGoogleのこのリンクhttp://www.labnol.org/internet/auto-expire-google-drive-links/27509/を見つけましたが、私が必要とするものではありません。 ありがとうございます。共有リンクフォルダを自動的に期限切れにするGoogle Appsスクリプトを作成する方法

答えて

0

共有リンクの自動有効期限を設定する方法についてはtutorialが見つかり、有効期限の後にフォルダ/ファイルを「非公開」にします。

var EXPIRY_TIME = "2014-05-01 23:42"; 

function autoExpire() { 

    var id, asset, i, email, users;  
    // The URL of the Google Drive file or folder 
    var URL = "https://drive.google.com/folderview?id=0B4fk8L6brI_ednJaa052"; 

    try {   
    // Extract the File or Folder ID from the Drive URL 
    var id = URL.match(/[-\w]{25,}/); 

    if (id) {   
     asset = DriveApp.getFileById(id) ? DriveApp.getFileById(id) : DriveApp.getFolderById(id);   
     if (asset) {    
     // Make the folder/file Private 
     asset.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.NONE); 
     asset.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.NONE);    
     // Remove all users who have edit permissions 
     users = asset.getEditors(); 
     for (i in users) { 
      email = users[i].getEmail(); 
      if (email != "") { 
      asset.removeEditor(email); 
      } 
     }    
     // Remove all users who have view permssions 
     users = asset.getViewers(); 
     for (i in users) { 
      email = users[i].getEmail(); 
      if (email != "") { 
      asset.removeViewer(email); 
      } 
     }    
     } 
    }  
    } catch (e) {   
    Logger.log(e.toString());   
    } 
} 

function Start() { 

    var triggers = ScriptApp.getProjectTriggers(); 

    for (var i in triggers) {   
    ScriptApp.deleteTrigger(triggers[i]);   
    } 

    var time = EXPIRY_TIME;  
    // Run the auto-expiry script at this date and time  
    var expireAt = new Date(time.substr(0,4), 
          time.substr(5,2)-1, 
          time.substr(8,2), 
          time.substr(11,2), 
          time.substr(14,2)); 

    if (!isNaN (expireAt.getTime())) { 
    ScriptApp.newTrigger("autoExpire").timeBased().at(expireAt).create(); 
    }  
} 

スクリプトは、特定の時間に実行し、それらをプライベート作るあなたのファイルやフォルダからすべての共有権限を削除し、共有リンクは動作しなくなります。これを確認することもできますblog

+0

#abielitaありがとう、私はコーダーではないので、このスクリプトを理解することは本当に難しいです。私のためにデモをしてください。例えば5分ごとにリンクが切れますか? (言い換えれば、5分後には、すべてのユーザーが権限を取り消さなければなりません。 – PickFilter

関連する問題