2017-05-29 70 views
0

我正在构建一个使用Firebase进行数据存储和用户身份验证的跨平台移动应用程序。我也使用一个SDK,它需要一些直接的URL到一些mp4文件。到目前为止,我们已将这些视频文件托管在单独的服务器上,但由于Firebase的简单性/可扩展性,我想将它们存储在其上,而不是单独存储。但是,我需要能够直接链接到该文件。是否可以直接访问Firebase存储资源URL?

当我去使用文件的火力地堡的存储位置,从我的浏览器访问一个测试文件,例如:

APPNAME.appspot.com/RESOURCENAME.mp4 

我得到一个404错误。

我已经把我的规则如下:

service firebase.storage { 
    match /b/{bucket}/o { 
     match /{allPaths=**} { 
      allow write: if request.auth != null; 
      allow read: if true; 
     } 
    } 
} 

有没有直接从URL访问火力地堡存储资源的方式?

编辑:我要补充一点,我要求不是随机生成一个URL,而是基于在存储文件的逻辑位置,因为资源文件是基于应用程序的文件的UUID动态访问。还有太多的文件存储/查找不可猜测的链接。

回答

1

云存储中文件的默认访问受您的安全规则控制。这是故意的。

但是,无论何时通过Firebase SDK上传文件,它还会为该文件生成所谓的下载URL。下载URL是一个不可猜测的URL,提供对文件的只读访问。这是为了与你在这里描述的方式与应用程序的其他用户共享。

要生成下载URL,请按照此处文档中的说明进行操作:https://firebase.google.com/docs/storage/ios/download-files#generate_a_download_url(其他平台的文档中存在类似的部分)。

1

虽然这不是您的问题的答案,但您应该真的使用Firebase Hosting来达到此目的。 Firebase存储面向用户上传和共享,而非静态内容。

使用Firebase CLI上传到托管非常简单。 https://www.youtube.com/watch?v=meofoNuK3vo您只需将要托管的文件放在“公共”文件夹中,然后运行firebase deploy即可。

相关问题