2009-07-11 3 views
17

Ruby로 gzip으로 압축 한 tar 아카이브를 만드는 가장 좋은 방법은 무엇입니까?Ruby : Gzipped Tar 아카이브 만들기

사용자 작업에 대한 응답으로 압축 된 아카이브를 만들어야하는 Rails 앱이 있습니다. 이상적으로는 중간 임시 파일을 먼저 생성 할 필요없이 직접 압축 파일에 쓸 수 있습니다. Ruby Zlib 라이브러리는 직접 gzip 압축을 지원하는 것으로 보입니다. 이것을 tar 출력과 어떻게 조합 할 수 있습니까?

많은 준 솔루션이 제안되어 많은 정보가 오래되어 나타난 것처럼 보입니다.

예를 들어 "ruby tar"의 최상위 Google 검색 결과는 2007 년에 분명히 해결되지 않은 this thread을 제공합니다.

또 다른 상위 순위 검색 결과는 this one describing ruby tar입니다. 2002 년으로 거슬러 올라간다.

유닉스 타르 (tar) 등으로 포격하는 것에 대한 다양한 보고서를 보았습니다.

이렇게 많은 방법이 있지만 실제로 몇 가지 대안을 시도한 사람으로부터 가장 안정적이고 편리한 방법으로 추천을 찾고 있습니다.

아이디어가 있으십니까?

+0

답변을 찾았습니까? – hornairs

+0

이것은 내 질문과 매우 유사합니다 : http://stackoverflow.com/questions/7856491/ruby-streaming-tar-gz 누구나 답변을 찾을 수 있습니까? –

+0

나는 아직도 이것으로 놀고있다. 그러나 이것은 좋은 생각처럼 보였다. Ruby의 [Archive :: Tar] (http://www.ruby-doc.org/gems/docs/a/archive-tar-0.9.0/Archive/Tar.html) – Pred

답변

4

Ruby Minitar 프로젝트는 2009 년에 업데이트하고 유닉스에서 실행하는 경우, 당신은 디스크에 파일을 쓸 수

+0

Minitar는 tars를 쓰는 것을 허용하지 않습니다. 스트림에서만 파일에서 가져옵니다. 스트림으로 출력 할 수도 있습니다. –

9

이 문제를 해결할 것 같아 한 후 타르에 시스템 호출을 실행/그들을 gzip을 .

`tar -czf #{file_name}.tar.gz #{file_name}` 
+0

나는 이것을 아주 좋아한다. "tar"가 시스템에 설치되어 있는지 확인하지는 않지만 루비가 있다면 합리적인 가정입니다 :) 그 주위에 백틱을 잊지 마세요. 그래서 볼 수 있도록 앞에 공백을 넣지 않을 것입니다. –

관련 문제