2009-07-27 171 views
7

流動態壓縮我正在尋找一種方式來動態地流下載的文件從Amazon S3拉鍊。從Amazon S3

應用程序託管在EC2和文件存儲在S3。

需要給用戶從一組文件,然後將得到捆綁,並下載到他們選擇的能力。

聽說過一些ActionScript庫(aszip和fzip)這是可能的,或者可以在Ruby中做到這一點,甚至可能是PHP。

的文件不需要任何壓縮,壓縮只是被用來捆綁文件成一個單一的下載....

+4

我想看看這個,做一個解決方案*不*涉及使用web服務器作爲Amazon S3和客戶端之間的代理。 – andrewrk 2010-06-14 22:46:37

+0

https://github.com/gchaincl/s3zipper – alextsil 2015-10-12 16:57:33

回答

0

如果你可以使用單聲道,DotNetZip將做到這一點。

Response.Clear(); 
Response.BufferOutput= false; // necessary for chunked output 
String ReadmeText= "This content goes into an entry in the " + 
        "zip file. Timestamp, MD5, whatever." ; 
string archiveName= String.Format("archive-{0}.zip", DateTime.Now.ToString("yyyy-MMM-dd-HHmmss")); 
Response.ContentType = "application/zip"; 
Response.AddHeader("content-disposition", "filename=" + archiveName); 

using (ZipFile zip = new ZipFile()) 
{ 
    zip.AddEntry("Readme.txt", "", ReadmeText, Encoding.Default); 
    zip.AddFiles(filesToInclude, "files"); 
    zip.Save(Response.OutputStream); 
} 
HttpContext.Current.ApplicationInstance.CompleteRequest(); 

DotNetZip是開源免費使用。

0

Java支持流拉鍊了。看看java.utils.zip包。我用它來實現由FTP,UNZIP,XSLT,CSV單元組成的管道。它的作用就像一種魅力。

馬丁

3

我用Nginx Zip Module以流本地文件,但選擇從遠程位置到流。否則,你可以使用VFS掛載的S3存儲作爲本地文件系統。 它支持尋求 - 斷點續傳和加速下載