2009-10-02 27 views
0

在YouTube上你知道,一旦你上傳了一個視頻,它會要求你使它成爲公共或私人。公衆認爲它可以被任何人訪問。私人只有你自己的原始上傳者,你也必須登錄才能這樣做。我需要做出與此類似的東西。我正在製作一個使用QuickTime漸進式下載而不是Flash的Rails應用程序,因此基本上我使用一個嵌入式標記,其中src指向一些dns/video.mov。但我不可能讓這些視頻進入公共領域。什麼可以成爲我的選擇?私有化視頻流

回答

0

用戶登錄時創建會話cookie。此cookie通常包含某種會話ID(長字符串)。將該ID作爲查詢附加到電影的URL(.../video.mov?ID=2387543462578)。

這樣,您的服務器可以檢查ID與當前打開的會話。如果ID無效,則回覆403(禁止)。

[編輯]由於您將文件放入Rails_root/public/videos,Ruby會自動爲您處理下載到瀏覽器。這是放入public文件夾中的任何文件的默認行爲。你需要的是把文件放在不同的地方並手動處理下載。檢查Ruby源代碼並查找public文件夾的處理程序;這應該讓你知道它是如何工作的。您應該可以使用一些附加代碼來擴展此類,以檢查用戶是否可以真正下載文件。

+0

在我的Rails應用程序中,既有身份驗證又有授權,至此我可以告訴誰可以使用哪些操作。我的印象是,例如,我在Rails_root/public/videos下有一個名爲「video」的用戶視頻文件夾。所以abc.mov現在可以直接通過地址欄中的dns/videos/abc.mov訪問。 Rails似乎並不知道這件事發生了。如果我不把視頻放在公共文件夾中,這可以防止這種情況發生,但我無法將其嵌入到普通用戶頁面中,因爲嵌入了SRC屬性,我需要爲該頁面提供url視頻到。我怎樣才能使用你的方法? – 2009-10-02 19:44:58

+0

查看我的編輯:您需要爲其他網址添加處理程序,以便任何人都不再公開視頻。 – 2009-10-05 08:00:06