0

ユーザーがドライブからファイルを検索して開くことができるGoogleアプリスクリプトを使用してWebアプリを開発しています。今、私はこのループでファイルを表示します:

var files = DriveApp.searchFiles('title contains "banana"');
var fileCount = 0;

while (files.hasNext()) {
  var file = files.next();
  app.getElementById('displayFilesPanel').add(app.createAnchor(file.getName() + ' - ' + file.getOwner().getEmail(), file.getUrl()));
  fileCount++;
}

ここでの問題は、getOwner() メソッドにかなりの時間がかかり (約 0.1 秒)、合計が非常に速くなることです。もう 1 つの問題は、これらのリンクがファイルを表すと見栄えがよくないことです。

これらの検索を DriveApp.searchFiles() で実行し、結果をアンカー/リンク以外のもので表示する方法はありますか?

編集: Zig Mandel と Serge insas の両方が言及したように、HTML サービスは見栄えを良くするために考慮する必要があります。「タイトルに「バナナ」が含まれている」などのパラメーターを使用すると、5 分のタイムアウト制限内に終了しないため、DriveApp.searchFiles 関数はあまり役に立たないことがわかりました。問題は、約 40 個の一致が見つかりましたが、その後、ドライブ内の他のすべての (>120000) ファイルをおそらくチェックしたことです。私の場合、 getAllFilesForPaging(number, token) 関数を使用し、タイトルに .indexOf('banana') != -1 メソッドを使用して「バナナ」が含まれているかどうかをすべてのファイルで確認しました。

4

2 に答える 2

1

DriveApp で速度の問題を回避することはできません。どうやら、所有者の電子メールを取得するために別のラウンドトリップを行っているようです。見栄えを良くするには、uiApp の代わりに htmlService を使用します。どちらの場合も、ファイル アイコンを追加して見栄えを良くすることができます。

于 2013-11-11T15:32:24.777 に答える