2010-07-05 58 views
8

我開發了一個social networking site for gardeners網站,並且有興趣讓用戶能夠將圖像添加到他們的「推文」中。如何安全且經濟地允許我網站上的圖片?

如果我允許他們上傳圖片到實際的網站,它看起來這將很快成爲昂貴的(這是一個橫向項目,而不是由任何人比我和我自己的執着資助)。假設這個網站變得普遍流行,每週有10萬用戶發佈一個圖片,只有25萬個圖片。這是(100000 * .1 * 52/1024)= 508 MB /年的存儲(並沒有考慮到增加的帶寬)。另外,我不得不增加服務器負載來縮放圖像。我不確定我是否應該繼續這樣做,或者如果有更好的可能性。

鏈接到其他網站在某些方面似乎更好。你確實已經斷開了鏈接,但是更大的擔憂是安全性:XSS。

該應用程序是on Rails的3,使用的MongoDB/Mongoid作爲後端,如果該事項。

我正在尋找解決方案,如:即在外部網站上的圖像存儲

  • 的API。最理想的是能夠將其上傳到我的網站,並進行API調用以將其存儲在外部網站上。
  • API(也許是JavaScript API),可以很容易地安全地鏈接到一個或多個外部圖像託管網站。
  • Markdown或類似的標記,可以安全地鏈接到外部圖像。我有興趣讓用戶能夠以有限的方式格式化他們的帖子,所以這可能同時解決兩個問題。我注意到這是Stack Overflow所做的。
  • 安全庫,白名單圖像URL模式
  • 爲什麼我在想這個問題的建議是錯誤的。例如,也許我應該只存儲圖像。每年500MB並不是那麼昂貴,它確實可以讓我創造一個非常乾淨的用戶體驗。

我的目標是(按順序): - 安全,無論是對我自己的網站,並且不允許對其他網站 XSS攻擊 - 最佳的用戶體驗 - 易於維護和實現

你做了什麼來允許你的網站上的用戶提供的圖像?

回答

2

爲什麼不使用像亞馬遜S3服務?是便宜,非常便宜(與減少冗餘存儲),和最重要的插件,如回形針支持它開箱即用...

+0

我要說的是什麼。存儲中的508MB在S3上的成本大約是1美元。 – 2010-07-06 06:32:43

4

您正在考慮錯誤的問題;或者不是在正確的時間。

現在不要擔心帶寬,當你沒有很多用戶還沒有。首先集中於使網站用戶友好和流行。性能,帶寬和磁盤空間 - 這些都是您在問題發生時所要處理的事情。當你擁有10萬用戶時,購買Amazon S3的空間和帶寬成本可能不再是問題。

+3

我明白延遲優化帶寬可能是合理的,但它肯定不是太早學習如何安全編碼。 – pc1oad1etter 2010-07-05 14:56:16

+0

雖然這是事實,但他所做的只是將問題轉移到網站被大量使用並超過原始服務器的時間,然後他必須在支持活動用戶的同時修復該問題。 現在可以更好地解決它。 – Arcath 2010-07-05 15:20:57

+0

是的,一旦網站變得足夠大,你總是可以選擇在網站上粘貼一些選擇廣告,併產生一些收入來支付增加的成本 – stephenmurdoch 2010-07-05 18:25:50

0

您需要看圖畫主機的T- & C(Flickr的等),看看您的使用情況是適用的。 Flickr有一個API,不知道其他人只是搜索HOST API。

Flickrs API是: http://www.flickr.com/services/api/

+0

謝謝Arcath。我曾研究過Flickr和其他一些替代品。 Flickr必須是非商業性的免費使用,儘管Picassa確實允許商業使用。 – Jade 2010-07-06 15:05:11

+0

順便說一句,我無法在上面留言,因爲「添加評論」按鈕顯示在右側的鏈接下。但是謝謝安德烈和託比! – Jade 2010-07-06 15:06:21

相關問題