主要的功能是希望在封閉環境內架設可以上傳檔案的空間
目前檔案都會放在AWS S3或是firebase storage上
考量到有些客戶有自己的伺服器,相較之下會比較希望可以上傳到他們的硬體上
因為考慮到備份問題
我們有想過自己寫一台webserver存放檔案(用CRON做異地備份)
或是直接把server接收到的東西原封不動地放進mongo(直接備份整個mongo)
還有像是架設類似Nextcloud這種服務
想問大家在這種情況下會採用哪種方式?
個人覺得要看使用環境(或使用情境)來決定。
我先說,我個人使用 owncloud (netcloud 的前身),owncloud 是架在我自己的 server 上。
像 owncloud 這種類型的好處是,不懂資訊相關東西的人也能輕鬆變更設定,再加上官方有推出跨平台的 app 、還可以搭配 web based 的 app 使用,所以一般使用者使用上會比較方便,如果是頂層(例如:單純管理 owncloud 中的帳號)的維護人員也會比較輕鬆。不過如果是底層人員會比較辛苦,因為 owncloud 安裝時相關的設定還有相依軟體很多,如果需要很細節的資料串接或 debug 就會有一點難度,需要再參考官方的說明文件(官方說明文件其實很完整,只是內容非常多)。
而透過 ssh、ftp、smb 等方式架設容易,底層資訊人員維護也相對方便,但是對於頂層資訊人員相對不容易,因為要手動設定一些權限相關的內容,在使用者的需求複雜的情況下會有點辛苦,對於最頂層的使用者來說,雖然使用簡單(用檔案總管就可以存取),但是功能相對單一,或者需要搭配其他軟體使用。另外,如果考慮使用這個方案,也許可以考慮裝個 NAS ?
我用的是ownCloud + Linxu 建立企業私用雲,可公網登入,LDAP連接AD做授權管理,可匿名共享(外網客戶或業主傳圖用)或具名共享,可連接NAS、Windows Share、Google雲及伺服器級的Mount Storage(iSAM/iSCSI)做空間擴充,權限設定合理(我喜歡他們的群組設定),單檔尺寸無2GB上限,用法跟公網上的雲類似,也有安卓、蘋果手機APP可直接連雲讀寫,亦有PC、MAC版同步工具可充當資料備份工具(即時)
不使用企業版的話,免費!無需架設FTP或SMB,防火牆只要設80或443port就好
如果你的程式原本就寫成用 S3 儲存的話, 最方便就是自架一台地端的 S3:
https://min.io/
我上次用 Container 架一台只花了 5 分鐘...
他的 API 跟 S3 相容, 所以你的程式不需要大改, 頂多改一下程式設定裡面的 Endpoint/Region/AccessKey/Secret 而已, 其他 S3 Bucket/Object 的操作部分都不用動; 看一下 minio 手冊便知...
minio 本身就有異地 Replication 功能, 你不需要自己寫....
但是 Firebase 部分似乎沒有地端方案可解, 你還是要上雲....