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