WEB开发网
开发学院服务器云计算 Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将... 阅读

Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将数据安全地上传到 S3

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示:您可以通过多种方式将文件从一个 Web 页面上传到 Amazon 的 Simple Storage Service (S3):使用来自 CPAN 的合适的模块从命令行上传使用来自 Amazon 的合适的模块从命令行上传 直接从 HTML 表单上传本文将展示直接从一个 HTML 表单上传文件,从而最小化服务器的负载,Pe

您可以通过多种方式将文件从一个 Web 页面上传到 Amazon 的 Simple Storage Service (S3):

使用来自 CPAN 的合适的模块从命令行上传

使用来自 Amazon 的合适的模块从命令行上传

直接从 HTML 表单上传

本文将展示直接从一个 HTML 表单上传文件,从而最小化服务器的负载。我们将文件上传到一个定制 URL,本系列后面的文章将使用该 URL 设置所构建的照片共享站点的其他部分。我们在本系列中使用 share.lifelogs.com 作为域名。

上传到 S3

您可以通过一个 POST 表单将数据上传到 S3(也可以使用 PUT HTTP 方法和 SOAP PutObject 调用)。对于本文,我们将使用表单 POST,因为它很简单,并且没有使用服务器资源(磁盘、CPU 或带宽)。

上传到 S3 的最大问题是不能修改元数据。这可能是由 S3 的分布式特性造成的,或者是 Amazon 为了保持简单。在 S3 论坛上,Amazon 表示这一点将来可能会出现变化。

无论如何,这意味着在上传内容时必须设置 Content-Type,否则将得到非常不理想的二进制/八位字节流集合的内容类型。其他元数据则不是特别重要,因为 Amazon 的 SimpleDB 用于跟踪上传,并且您可以在其中存储元数据。我们提供了一个大部分情况下都令人满意的 JavaScript 解决办法 来解决 Content-Type 问题。

用户名将是一个有效的 URL 的一部分。您还应该将其放入要加载的元数据中,这样它就始终与文件相关联。但是用户随后就不能再修改他或她的用户名,除非为了存储新的元数据,要求您通过某些方法重新执行所有 S3 上传。您可以使用独立于用户名的用户 ID 并将用户 ID 与 S3 对象关联在一起,但是这添加了不必要的复杂性,因为我们的目的是构建一个简单的照片共享站点。

1 2 3 4 5  下一页

Tags:Perl Amazon 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接