2009-07-27 39 views
7

Tôi đang tìm cách tự động truyền tải xuống một tệp zip từ Amazon S3.Truyền trực tuyến một mã zip động từ Amazon S3

Ứng dụng được lưu trữ trên EC2 và các tệp được lưu trữ trên S3.

Cần cung cấp cho người dùng khả năng chọn từ một nhóm tệp mà sau đó sẽ được nhóm và tải xuống cho họ.

Bạn đã nghe nói về một vài thư viện ActionScript (aszip và fzip) có thể có hoặc có thể thực hiện điều này trong Ruby hoặc thậm chí là PHP.

Các tập tin không cần bất kỳ nén, zip được chỉ được sử dụng để gói các tập tin thành một tải đơn ....

+4

Tôi muốn xem giải pháp cho việc này * không * liên quan đến việc sử dụng máy chủ web làm proxy giữa amazon s3 và ứng dụng khách. – andrewrk

+0

https://github.com/gchaincl/s3zipper – alextsil

Trả lời

0

Nếu bạn có thể sử dụng Mono, DotNetZip sẽ làm điều đó.

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 là mã nguồn mở, miễn phí để sử dụng.

0

Java cũng hỗ trợ nén trực tuyến. hãy xem gói java.utils.zip. tôi đã sử dụng để thực hiện một pipline bao gồm FTP, UNZIP, XSLT, đơn vị CSV. Nó hoạt động như một say mê.

Martin

3

tôi sử dụng Nginx Zip Module để truyền các file cục bộ, nhưng có tùy chọn để truyền từ các địa điểm từ xa. Nếu không, bạn có thể sử dụng nó với VFS gắn S3 lưu trữ như hệ thống tập tin địa phương. Nó hỗ trợ tải xuống tìm kiếm - tiếp tục và tăng tốc

+0

Điều đó nghe có vẻ thú vị, Gertas, cảm ơn cho tip. Tôi sẽ xem xét này. Chúng tôi đã kết thúc bằng cách sử dụng một giải pháp Flash, nhưng hiện đang trong quá trình làm lại hệ thống của chúng tôi, vì vậy điều này có thể có ích. –

+0

Mô-đun zip cho nginx hỗ trợ zip64 có nghĩa là các tệp lưu trữ có thể chứa tệp> 2GB, nó hoạt động rất tốt. Tôi cho rằng tải xuống flash có một số nhược điểm - cần nhấp để người dùng lưu, không thể tạo liên kết tới các tệp zip và tối đa 100MB được hỗ trợ chính thức. – gertas

Các vấn đề liên quan