google-cloudやmulter-gcsのようなnpmパッケージを使用してfirebase storage bucketにファイルをアップロードすると(フードの下にGoogleのクラウドストレージを使用)、ファイルがアップロードされます。ただし、ファイルは表示されず、イメージの種類(MIME)も表示されます。また、node.jsアプリケーションで画像を使用するにはどうすればよいですか?Firebase storage:アップロード後にイメージファイルの種類が表示されません。画像を使用するにはどうすればいいですか?
画像はfirebase bucketにアップロードするコードです。ファイルのアップロードを処理するために使用multer ..私のルートで
var path = require('path');
var multer = require('multer');
var gcs = require('multer-gcs');
var storage = gcs({
filename : function(req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname).toLowerCase());
},
bucket : 'p****n-bcXX3.appspot.com', // Required : bucket name to upload
projectId : 'p****n-bcXX3', // Required : Google project ID
keyFilename: './p****n-5cbc725XXXXd.json', // Required : JSON credentials file for Google Cloud Storage
acl : 'publicread' // Optional : Defaults to private
});
:
router.post('/food/create', [authChecker, gcsUpload.single('food_image')], function(req, res, next) {
Controllers.create_food(req, res);
});
私はバケットに直接ファイルをアップロードすると、タイプが明確に示されています。ここのキャッチは何ですか?
ありがとうございました。私はオプションで 'メタデータ'を使用していませんでした。しかし、これらのオプションを明示的に設定すると、firebaseのファイルタイプのメタデータを更新できるようになりました。私は 'publicread''として' predefinedAcl'オプションを設定して、公開URLを誰にでも見せて、どんなブラウザでも表示できるようにする必要がありました。 実際、私は_multer_でファイルをアップロードし、それをblobとして受け取っているので、bucket.uploadメソッドではなく、 'createWriteStream'でオプションを使う必要がありました。その素晴らしいヒントに感謝します。 –