Recibo el siguiente error cuando intento conectarme con un Google Cloud Storage Bucket en una aplicación nodejs basada en Google App Engine.
ApiError: parámetro requerido: proyecto
at Util.parseHttpRespBody (/workspace/node_modules/@google-cloud/common/build/src/util.js:208:38) at Util.handleResp (/workspace/node_modules/@google-cloud/common/build/src/util.js:149:117)
El código para conectarse en el archivo server.js es bastante sencillo:
const {Storage} = require('@google-cloud/storage'); const storage = new Storage(); storage.getBuckets().then(y => console.log(y));Tanto la aplicación implementada como el depósito de almacenamiento forman parte del mismo proyecto.
También creé una cuenta de servicio para el depósito de almacenamiento, que tiene roles de administrador de claves de API y administrador de almacenamiento, y se generaron claves de API.
¡Cualquier ayuda sería muy apreciada!
Aquí está el código actualizado (con mi ID de proyecto editado):
const {Storage} = require('@google-cloud/storage'); const storage = new Storage({ projectId: 'r@@@@@@tt@@@h-3####9' }); storage.getBuckets().then(y => console.log(y)); "dependencies": { "@google-cloud/storage": "^5.15.3", "body-parser": "^1.19.0", "dotenv": "^10.0.0", "ejs": "^3.1.6", "express": "^4.17.1", "multer": "^1.4.3", "pg": "^8.7.1", "pg-hstore": "^2.3.4", "sequelize": "^6.6.5", "sequelize-cli": "^6.2.0" }, "devDependencies": { "@types/node": "^14.6.2", "nodemon": "^2.0.14" }Cree el cliente y especifique el ID del proyecto (no el nombre del proyecto):
const storage = new Storage({ projectId: 'your-project-id' });Si desea especificar la cuenta de servicio que mencionó:
const storage = new Storage({ projectId: 'your-project-id', keyFilename: '/path/to/service-account-key.json' });Documentación: