Saltar al contenido

Cree un nuevo archivo en una carpeta con Apps Script utilizando el servicio Google Advanced Drive

Solución:

La forma más sencilla de crear un nuevo archivo es utilizar DriveApp que viene con Google Apps Script puro:

var dir = DriveApp.getFolderById("{dir_id}");
var file = dir.createFile(name, content);

Si no conoce la identificación exacta del directorio, puede obtener la carpeta por su nombre:

var dir = DriveApp.getFoldersByName(name).next();

los next() está ahí porque getFoldersByName() devuelve una colección de todos los directorios cuyos nombres coinciden con el valor dado.

También comprobar DriveApp documentos: https://developers.google.com/apps-script/reference/drive/drive-app

Tal vez esto sea un poco tarde, pero al mirar los documentos de la API REST, muestra que puede usar Drive.Files.insert para insertar en cualquier carpeta. Simplemente debe agregar el ID de la carpeta en las propiedades del archivo que está insertando como tal:

var file = {
   title: 'myFile',
   "parents": [{'id':folder.getId()}],  //<--By setting this parent ID to the folder's ID, it creates this file in the correct folder.
   mimeType: 'image/png'
 };

La ID de carpeta se puede obtener desde el enlace para compartir usando la GUI de Google Drive o como se muestra aquí. (por ejemplo, use la función Ejecutar a la derecha).

Alternativamente, puede acceder a la carpeta por nombre reemplazando el folder.getID() con Drive.getFoldersByName('name of folder').

Esto es útil porque Drive.Files.insert() acepta argumentos mientras Drive.createFile() y Drive.createFolder() no.

La documentación para INSERTAR Para el API de Drive se encuentra en este enlace:

API de Drive para INSERT

Hay una sección para Cuerpo de la solicitud. Uno de los Propiedades opcionales por Insertar es padres[]. Los corchetes [] indicar que se puede designar una lista de padres. La documentación para padres[] dice esto:

Colección de carpetas principales que contienen este archivo. La configuración de este campo colocará el archivo en todas las carpetas proporcionadas. Al insertarlo, si no se proporcionan carpetas, el archivo se colocará en la carpeta raíz predeterminada.

Tan, . . . utilizando Insertar en API de Drive,. . . . PUEDEN escriba un archivo nuevo directamente en una subcarpeta. Es posible.

Ahora, la nomenclatura y la sintaxis de la SDK de Google Drive, Solicitud HTTP es diferente de lo que está dentro de Apps Script.

La sintaxis para invocar la solicitud HTTP de la API de Drive dentro de un .gs archivo es uno de los siguientes tres:

  • Drive.Files.insert (recurso ARCHIVO)
  • Drive.Files.insert (recurso FILE, BLOB mediaData)
  • Drive.Files.insert (recurso FILE, BLOB mediaData, OBJECT OptionalArgs)

La sintaxis que se muestra en la lista anterior es de la lista desplegable de autocompletar dentro del editor de código de Apps Script. Si escribe Drive.Files. aparecerá una lista de posibles métodos. No puedo encontrar información sobre la sintaxis en ninguna parte de la documentación en línea.

Entonces, ¿de dónde viene el padres[] propiedad opcional ir? Bueno, no es un Blob, así que podemos descartarlo. Es bien FILE resource, o OBJECT optionalArgs. OptionalArgs indica que es un objeto, pero FILE resource en realidad también es un objeto.

En los ejemplos, el FILE resource se construye como objeto de par clave: valor.

Carga de archivos – Servicio avanzado de Drive – Documentación de Google

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *