从 Amazon S3 流式传输动态 zip

发布于 2024-07-29 08:42:06 字数 251 浏览 3 评论 0原文

我正在寻找一种从 Amazon S3 动态流式下载 zip 文件的方法。

该应用程序托管在 EC2 上,文件存储在 S3 上。

需要让用户能够从一组文件中进行选择,然后将这些文件捆绑起来并下载给他们。

听说过一些可能可行的 Actionscript 库(aszip 和 fzip),或者可以在 Ruby 甚至 PHP 中做到这一点。

这些文件不需要任何压缩,zip 只是用于将文件捆绑到一个下载中......

I am looking for a way to dynamically stream download a zip of files from Amazon S3.

The application is hosted on EC2 and the files are stored on S3.

Need to give users the ability to select from a group of files which will then get bundled up and downloaded to them.

Have heard about a few Actionscript libraries (aszip and fzip) that might be possible, or could do this in Ruby, or even possibly PHP.

The files do not need any compression, zip is just being used to bundle the files up into one single download....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

划一舟意中人 2024-08-05 08:42:06

我使用 Nginx Zip Module 来流式传输本地文件,但可以选择从远程位置进行流式传输。 否则,您可以将其与 VFS 安装的 S3 存储一起用作本地文件系统。
它支持寻找可恢复和加速下载

I use Nginx Zip Module to stream local files, but there is option to stream from remote locations. Otherwise you could use it with VFS mounted S3 storage as local filesystem.
It supports seek - resumable and accelerated downloads

舞袖。长 2024-08-05 08:42:06

如果您可以使用 Mono,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 是开源的,可以免费使用。

If you can use Mono, DotNetZip will do it.

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 is open source, free to use.

花辞树 2024-08-05 08:42:06

Java 也支持流式 zip。 查看 java.utils.zip 包。 我用它来实现一个由 FTP、UNZIP、XSLT、CSV 单元组成的管道。 它就像一个魅力。

马丁

Java supports streaming zips too. take a look at the java.utils.zip package. i used that to implement a pipline consisting of FTP, UNZIP, XSLT, CSV units. it works like a charm.

Martin

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文