簡體   English   中英

如何將文件從生產服務器上載到靜態服務器?

[英]How can I upload my files to my static server from a production server?

我的生產包裝盒上有django和django的管理員設置。 這意味着所有文件上傳都存儲在生產盒中,所有媒體都存儲在其中。

我現在有一個用於文件的單獨服務器(不同的盒子,ip)。 我想在那里上傳文件。 我考慮過這些方法的優點和缺點是什么,您可以建議“更好”的方法嗎?

  1. 將文件上傳到靜態服務器后,設置腳本以在生產環境中執行rsync
  2. 通過在靜態介質盒上使用文件服務器(例如nfs / samba / ssh-fs),然后將安裝位置用作生產盒上的upload_to路徑,在生產盒上設置永久安裝

信息:兩台服務器都運行debian。

編輯 :來自#django的Prometheus建議http://docs.djangoproject.com/en/dev/howto/custom-file-storage/

我使用Fabric 您特別感興趣的是fabric.contrib.project.rsync_project()

釋義-

Fabric是一個Python庫和命令行工具,用於簡化SSH在應用程序部署或系統管理任務中的使用。

首先使用fabric.contrib.project.upload_project()上傳整個項目目錄。 從那時起,繼續使用fabric.contrib.project.rsync_project 將項目與本地版本同步。 同樣特別有趣的是,它在下面使用unix rsync並使用安全的scp來傳輸.tar.gz數據。

我想這可以滿足您的需求。 可能不需要設置永久性安裝等。

如果您的靜態媒體是從您的開發過程中派生的,那么Fabric是您的最佳選擇。 它可以從任何地方到任何地方自動部署和復制任何東西-數據,應用程序文件,甚至是靜態數據庫轉儲。

如果您的靜態媒體來自應用程序服務器的操作-生成的PDF和圖像,從用戶上傳的文件,已編譯的二進制文件(我有一位客戶希望這樣做,那么Django應用程序將使用原始x86程序集並返回已編譯和鏈接的二進制)-然后您要使用Django Storages ,這是一個為任何ImageField或FileField(或具有Python File-like接口的任何東西)抽象內容的實際存儲的應用程序。 它支持將其存儲在數據庫中,通過FTP以及其他一些存儲到Amazon S3。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM