2009-12-17 96 views
13

我在一個目錄中有一堆文件。我想將它們中的一些壓縮成一個zip壓縮文件。如何使用Ruby on Rails創建一個zip存檔?

我可以看到有varioussolutions這樣做。我可以使用諸如rubyzip之類的寶石,或者運行exec,並使用命令行工具。

這將影響我的工作系統的重要組成部分,所以我很想對使用Rails創建zip文件的一些反饋和/或方向。

回答

13

rubyzip是一個不錯的選擇。我曾用它在我以前從事的社交應用程序的私人消息中壓縮附件。但是,如果要壓縮的文件尺寸很大,建議您使用delayed_job做一些後臺處理。

+0

感謝您的回答。關於rubyzip,它是否保持或至少完全正常工作?並感謝delayed_job,這聽起來像是我正在嘗試做的下一步 – marcgg 2009-12-17 14:44:20

+0

我不再在那個項目上工作,但我相信它的工作。無論如何,你仍然可以使用exec並將命令發送給linux來執行它。 – khelll 2009-12-17 14:55:19

+4

Rubyzip是一個不錯的選擇;如果你需要擴展代碼來解壓縮一個壓縮文件的內容,你可以很容易地添加它,而且你不需要依賴任何外部程序。一般來說(甚至可能不是你的情況),使用寶石是更好的解決方案,海事組織。 – kiamlaluno 2009-12-17 15:02:29

5

如果只壓縮和解的文件,而不是做其他事情,那麼我會建議使用EXEC或系統或%×做壓縮和解,因爲安裝和使用寶石這樣一個小任務沒有太大的意義。

但是,如果您想要做的不僅僅是壓縮某些目錄並利用其他功能,那麼明顯的選擇是使用rubyzip gem。

+3

爲什麼只用拉鍊就可以使用寶石?你能詳細說明一下嗎? – marcgg 2009-12-17 14:55:22

+3

您只需添加一個不必要的抽象層即可。 Exec直接調用系統命令,加載一個gem會有內存開銷,沒有很好的理由。如果你打算使用寶石的其他功能,盡一切辦法來使用它。 – bensie 2009-12-17 15:22:53

+0

究竟是什麼bensie說 – nas 2009-12-17 16:04:13

-3

如果gzip是一個選項,我建議在ActiveSupport中嵌入Gzip

相關問題