1

Ich habe einen Node.js Server und ich verwende google-cloud Paket, um einige Bilddateien auf Firebase Storage zu laden.Node.js Google-Cloud-Speicher Upload-Zielspezifikation

Upload selbst funktioniert gut, aber Google-Cloud-API scheint nur Dateien in Firebase Storage Stammordner hochladen zu können.

Gibt es eine Möglichkeit, den Remote-Standort anzugeben, an den das Bild hochgeladen werden soll?

Was mache ich jetzt:

const serviceAccount = require('./serviceAccount.json'); 

const storage = gcloud.storage({ 
    projectId: '*projectId*', 
    credentials: serviceAccount 
}); 

const storageBucket = storage.bucket('*bucket*'); 

storageBucket.upload(localFsPath) 
    .then(data => /* Some stuff */) 
    .catch(err => console.log(err)); 

Gibt es eine Möglichkeit, so etwas zu tun?

storageBucket.upload(path, { destination: 'a/b/c/file.jpg' }) 
    .then(data => /* Some stuff */) 
    .catch(err => console.log(err)); 
+1

haben Sie versucht mit '{destination: newPath}'? weil es genau so funktioniert. siehe [doc] (https://googlecloudplatform.github.io/google-cloud-node/#/docs/google-cloud/0.44.0/storage/bucket?method=upload) –

Antwort

1

Wie @ Jérôme wies darauf hin, war der Ansatz richtig. Ich habe das falsche Format der Zielpfad-Zeichenfolge übersehen, die '/ x/y // z' war.

Es gibt offensichtlich 2 Fehler.

Erstens darf der Pfad nicht mit '/' beginnen, sondern ein Name des Knotens (Datei/Ordner).

Zweites Problem (der '//' Teil) interessanterweise verursacht nicht API zu werfen, aber verursacht Firebase rekursiv erstellen endlos verschachtelte Struktur der Knoten (Ordner) mit dem Namen '/'.