如何将AngularJS应用程序中的文件上传到Firebase Hosting

时间:2017-08-18 00:00:11

标签: angularjs firebase firebase-hosting ng-file-upload

我正在使用Firebase Hosting来托管我的AngularJS应用程序。我正在使用ng-file-upload从我已经在我的应用程序中的表单中获取用户上传的图像。我想将用户上传的图像存储在Firebase托管的文件夹中。我无法使用Firebase存储,因为我需要预先确定的直接链接到我平台各个部分的图像资源。我想也许我可以使用Firebase功能上传文件并将其存储在我的Firebase托管中。我一直遇到跨源错误。

有人可以解释如何构建Firebase功能,以便我可以将图像上传到我的Firebase托管吗?据我所知,Firebase功能并未与Firebase托管内容的其余部分托管在同一位置,但我不确定这是否会产生影响。

1 个答案:

答案 0 :(得分:0)

Firebase Hosting专门用于版本化,部署的静态内容。 Cloud Storage for Firebase绝对是适合您的产品。当您说您需要“预先确定的直接链接”时,您是否需要在上传完成之前知道该URL?如果没有,您只需在Firebase云存储SDK中使用getDownloadURL()即可。

如果您确实需要事先了解网址,可以执行以下操作:

  1. Upload the file使用Firebase SDK进行云端存储。
  2. Create a Cloud Function收听上传内容。
  3. 在函数中,使用GCS Node API将对象公开。
  4. 完成上述操作后,您的文件将在https://<bucket>.storage.googleapis.com/<path_to_object>直接公开访问。