1

Node.jsサーバーがあり、google-cloudパッケージを使用して、画像ファイルをFirebase Storageにアップロードしています。Node.js Googleクラウドストレージのアップロード先指定

アップロード自体は正常ですが、google-cloud APIはFirebase Storageのルートフォルダにのみファイルをアップロードできるようです。

画像をアップロードするリモートロケーションを指定する方法はありますか?

私は今、何をやっている:

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)); 

このような何かをする方法はありますか?

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

'{destination:newPath}'で試してみましたか?それはまさにそれがどのように機能するかという理由からです。 [doc](https://googlecloudplatform.github.io/google-cloud-node/#/docs/google-cloud/0.44.0/storage/bucket?method=upload)をご覧ください。 –

答えて

1

@Jérômeが指摘しているように、アプローチは正しいものでした。私は '/ x/y // z'だった目的地パス文字列の間違ったフォーマットを見落としました。

明らかに2つの間違いがあります。

まず、パスは「/」で始まらないで、ノード(ファイル/フォルダー)の名前で始める必要があります。

興味深いことに、興味深いことにAPIがスローされることはありませんでしたが、Firebaseは再帰的にエンドレスのネストされた構造( '/'という名前のネスト構造)を作成しました。

関連する問題