Sobrescribir un archivo de imagen con Google Apps Script

¿Puedo sobrescribir un archivo de imagen con Google Apps Script? He intentado:

file.setContent(newBlobImage);
file.replace(newBlobImage);

Ninguno de esos trabajos..setContent() eliminará cualquier dato que haya en el archivo, y parece que tal vez solo escribe el nombre de la variable como texto, o algo así. Estoy asumiendo que ambos.setContent() y.replace() están destinados a documentos de texto, y tal vez por eso no funcionan.

Si se tratara de un archivo de texto o una hoja de cálculo, podría borrarlo y luego agregar nuevo contenido.

Puedo tirar la basura al archivo y luego crear uno nuevo, pero prefiero no hacerlo si hay otra forma.

Si escribo un archivo con el mismo nombre, no sobrescribirá el archivo existente, creará otro archivo con el mismo nombre.

La única forma en que he podido tirar basura al archivo es conDocsList y el único éxito que he tenido al crear un archivo de imagen es conDriveApp. Entonces tengo que tirar la basura al archivo conDocsList, luego cree otro archivo conDriveApp.

Bueno, he descubierto cómo eliminar el archivo sin enviarlo a la papelera, por lo que no necesitaré limpiar la papelera más tarde. losGoogle Drive SDK dentro de Apps Script tiene unremove método que no envió el archivo a la papelera, simplemente desapareció.

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);
};

Entonces, estoy combinando elDriveApp servicio y elDriveAPI para eliminar el archivo sin enviarlo a la papelera. losDriveAPI .remove necesita la ID del archivo, pero no tengo la ID del archivo, por lo que el archivo se busca por nombre, luego se recupera la ID del archivo y luego se usa la ID para eliminar el archivo. Entonces, si no puedo encontrar una manera de sobrescribir el archivo, al menos puedo eliminar el archivo antiguo sin que vaya a la papelera.

Acabo de notar que elDriveAPI el servicio tiene unPatch y unUpdate opción.

.patch(resource, fileId, optionalArgs)

Parche de documentación de Google Actualiza los metadatos del archivo.

losresource arg es probablemente el metadato. losfileId Se explica por sí mismo. Supongo que eloptionalArgs Cuáles son los parámetros que siguen la semántica del parche de solicitud HTTP? No lo sé.

Parece que tanto Patch como Update actualizarán los datos. La actualización es unPUT solicitar que lo hará

borra los datos previamente establecidos si no proporciona parámetros opcionales.

De acuerdo con la documentación. Por lo tanto, es más seguro usar una solicitud de parche porque los parámetros que faltan simplemente se ignoran. Todavía no lo he probado, pero tal vez esta sea la respuesta.

Recibo un error conPatchasí que lo intentaréUpdate:

.update(resource, fileId, mediaData)

Eso tiene un argumento para mediaData en forma de blob. Y creo que eso es lo que necesito. Pero no estoy seguro de qué demoniosresource necesidades de parámetros Entonces estoy atrapado allí.

Respuestas a la pregunta(2)

Su respuesta a la pregunta