2017-09-06 14 views
0

Googleドライブにアクセスし、特定の日付の後に変更されたすべてのファイル(過去30日以内に変更されたすべてのファイルなど)にアクセスするGoogleスクリプトを作成し、すべてのリビジョンを保存するように設定したい永遠に。基本的には、Googleドライブでは更新履歴を永遠に保存することが目標ですが、毎回すべてのファイルにその冗長性とリソースの浪費があるため、15日または30日に1回実行する予定です。Googleスクリプトを使用して、ある日の後に編集されたファイルの改訂履歴をGoogleドライブに保存する方法はありますか

私はこのようなWeb上の何かを見つけることができないので、私はStackExchangeコミュニティに尋ねることをお勧めしました。

+0

進み、操作を学び、あなたを書きます実装。 – noogui

答えて

0

以下のコードは、私が説明したとおりですが、(すべてのGoogleスクリプトと同様に)6分間のみ実行されます(現在EAPの場合は30)。ドライブのAPIのためのアプリケーションのスクリプトである[クラスDriveApp](https://developers.google.com/apps-script/reference/drive/drive-app)へ

function setRevisionPermanent() { 

    var rateLimit = 200; 

    var today = new Date(); 

    var oneYear = new Date(today.getTime() - 365 * 24 * 60 * 60 * 1000); 
    var oneMonth = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000); 
    var startTime = oneMonth.toISOString(); 

    var search = '(trashed = false) and (modifiedDate > "' + startTime + '")'; 
    var files = DriveApp.searchFiles(search); 

    while (files.hasNext()) { 

    var file = files.next();  
    var fileName = file.getName(); 
    var fileId = file.getId(); 

    try { 

     var revisions = Drive.Revisions.list(fileId).items;  

     for (var i = 0 ; i < revisions.length ; i ++) {   
     var rclone = revisions[i]; 
     rclone.pinned = i < revisions.length - rateLimit ? false : true; 
     var request = Drive.Revisions.update(rclone, fileId, revisions[i].id); 

     } 

    } catch (e) { 

     Logger.log(e.message); 

    } 

    } 
} 
0

多分あなたはこのdocumentationを参照する必要があります。

ファイルのリビジョンを一覧表示するには、Revisions: listメソッドが必要です。

ここsampleの.jsコードされる:

/** 
* Retrieve a list of revisions. 
* 
* @param {String} fileId ID of the file to retrieve revisions for. 
* @param {Function} callback Function to call when the request is complete. 
*/ 
function retrieveRevisions(fileId, callback) { 
    var request = gapi.client.drive.revisions.list({ 
    'fileId': fileId 
    }); 
    request.execute(callback); 
} 

他の方法も利用可能である:

この方法で遊んで、必要な機能を作りましょう。

関連する問題