Je télécharge manuellement le fichier JSON sur le stockage Google Cloud en créant un nouveau projet. Je peux lire les métadonnées d'un fichier mais je ne sais pas lire le contenu JSON.
Le code que j'ai utilisé pour lire les métadonnées est:
var Storage = require('@google-cloud/storage');
const storage = Storage({
keyFilename: 'service-account-file-path',
projectId: 'project-id'
});
storage
.bucket('project-name')
.file('file-name')
.getMetadata()
.then(results => {
console.log("results is", results[0])
})
.catch(err => {
console.error('ERROR:', err);
});
Quelqu'un peut-il me guider sur la façon de lire le contenu du fichier JSON?
J'ai utilisé le code suivant pour lire un fichier json depuis Cloud Storage:
'use strict';
const Storage = require('@google-cloud/storage');
const storage = Storage();
exports.readFile = (req, res) => {
console.log('Reading File');
var archivo = storage.bucket('your-bucket').file('your-JSON-file').createReadStream();
console.log('Concat Data');
var buf = '';
archivo.on('data', function(d) {
buf += d;
}).on('end', function() {
console.log(buf);
console.log("End");
res.send(buf);
});
};
Je lis à partir d'un flux et je concatère toutes les données du fichier dans la variable buf.
J'espère que ça aide.
MISE À JOUR
Pour lire plusieurs fichiers:
'use strict';
const {Storage} = require('@google-cloud/storage');
const storage = new Storage();
listFiles();
async function listFiles() {
const bucketName = 'your-bucket'
console.log('Listing objects in a Bucket');
const [files] = await storage.bucket(bucketName).getFiles();
files.forEach(file => {
console.log('Reading: '+file.name);
var archivo = file.createReadStream();
console.log('Concat Data');
var buf = '';
archivo.on('data', function(d) {
buf += d;
}).on('end', function() {
console.log(buf);
console.log("End");
});
});
};
Il existe une méthode pratique: "télécharger" pour télécharger un fichier en mémoire ou vers une destination locale. Vous pouvez utiliser la méthode de téléchargement comme suit:
const bucketName='bucket name here';
const fileName='file name here';
const storage = new Storage.Storage();
const file = storage.bucket(bucketName).file(fileName);
file.download(function(err, contents) {
console.log("file err: "+err);
console.log("file data: "+contents);
});