我可以用Google Apps腳本覆蓋圖片文件嗎?我試過了:用Google Apps腳本覆蓋圖片文件
file.setContent(newBlobImage);
file.replace(newBlobImage);
這些工作都沒有。 .setContent()
會刪除文件中的任何數據,看起來也許它只是將變量名寫入文本或類似的東西。我假設.setContent()
和.replace()
都是針對文本文檔的,也許這就是他們不工作的原因。
如果是文本文件或電子表格,我可能會清除它,然後附加新的內容。
我可以垃圾文件,然後創建一個新的,但我寧願不,如果有其他方式。
如果我寫了一個同名的文件,它不會覆蓋現有文件,它會創建一個具有相同名稱的另一個文件。
我已經能夠垃圾文件的唯一方法是DocsList
,我創建圖像文件的唯一成功是DriveApp
。所以我必須用DocsList
垃圾文件,然後用DriveApp
創建另一個文件。
嗯,我已經想出瞭如何刪除文件而不將它發送到垃圾箱,所以我不需要以後清理垃圾箱。 Apps Script中的Google Drive SDK
有一個remove
方法,它不會將文件發送到垃圾箱,它只是消失了。
var myFolder = DriveApp.getFolderById('3Bg2dKau456ySkhNBWB98W5sSTM');
thisFile = myFolder.getFilesByName(myFileName);
while (thisFile.hasNext()) {
var eachFile = thisFile.next();
var idToDLET = eachFile.getId();
Logger.log('idToDLET: ' + idToDLET);
var rtrnFromDLET = Drive.Files.remove(idToDLET);
};
所以,我結合DriveApp
服務和DriveAPI
刪除的文件,而不將其發送到回收站。 DriveAPI
.remove需要文件ID,但我沒有文件ID,因此文件被按名稱查找,然後檢索文件ID,然後使用ID刪除文件。所以,如果我找不到覆蓋該文件的方法,我至少可以刪除舊文件而不去垃圾。
我剛剛注意到DriveAPI
服務有Patch
和Update
選項。
.patch(resource, fileId, optionalArgs)
Google Documentation Patch更新文件元數據。
resource
arg可能是元數據。 fileId
是不言自明的。我猜測optionalArgs
是遵循HTTP請求補丁語義的參數嗎?我不知道。
它看起來像修補程序和更新將更新數據。更新是將
,如果你不提供可選參數清除之前設置的數據
PUT
請求。
根據文檔。所以使用補丁請求會更安全,因爲任何缺少的參數都會被忽略。我還沒有嘗試過,但也許這是答案。
我得到一個錯誤與Patch
,所以我會盡力Update
:
.update(resource, fileId, mediaData)
,已以BLOB的形式mediaData一個ARG。我認爲這是我需要的。但我不確定resource
參數需要什麼。所以我卡在那裏。
我可以在哪裏找到Google開發人員文檔中Drive.Files.update的API參數說明?找不到它。因爲我倒過了前兩個參數,並且您幫助我解決了我自己的問題。 –
Drive API參考位於以下鏈接:[Google文檔](https://developers.google.com/drive/v2/ reference /)參考中的REST API和Apps腳本的語法不同。但是Apps腳本在自動完成中提供了語法。 –
謝謝!我沒有考慮自動完成。當然 ! –