web-dev-qa-db-fra.com

Télécharger le fichier sur le stockage FireBase à l'aide de l'administrateur SDK

Selon le Docs , je dois transmettre le nom de fichier à la fonction afin de télécharger un fichier.

// Uploads a local file to the bucket
await storage.bucket(bucketName).upload(filename, {
  // Support for HTTP requests made with `Accept-Encoding: gzip`
  gzip: true,
  metadata: {
    // Enable long-lived HTTP caching headers
    // Use only if the contents of the file will never change
    // (If the contents will change, use cacheControl: 'no-cache')
    cacheControl: 'public, max-age=31536000',
  },
});

J'utilise Firebase Admin SDK (NodeJS) dans le code côté serveur et les clients envoient un fichier dans les données de formulaire que je reçois des objets de fichier. Comment puis-je télécharger cela lorsque la fonction accepte uniquement le nom de fichier menant à FilePath.

Je veux pouvoir faire quelque chose comme ça


app.use(req: Request, res: Response) {
 const file = req.file;
// upload file to firebase storage using admin sdk
}

10
Chima Precious

ce que vous devriez faire, c'est utiliser la fonction intégrée

disons que vous recevez le fichier en tant qu'ImageCOC auprès du client et

 const imageDoc = e.target.files[0]

dans le nœud, vous pouvez maintenant obtenir un chemin d'URL sur l'objet comme

 const imageDocUrl = URL.createObjectURL(imageDoc)

donc, votre code final sera

 // Uploads a local file to the bucket
    await storage.bucket(bucketName).upload(imageDocUrl, {
         // Support for HTTP requests made with `Accept- 
        Encoding: gzip`
        gzip: true,
         metadata: {
            // Enable long-lived HTTP caching headers
           // Use only if the contents of the file will never change
           // (If the contents will change, use cacheControl: 'no-cache')
          cacheControl: 'public, max-age=31536000',
     },
});
0
Maduekwe Pedro