2017-05-29 115 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即可。

相關問題