Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将数据安全地上传到 S3
2010-02-04 00:00:00 来源:WEB开发网S3 开发人员文档对所有内容进行了很好的解释。bucket 必须被命名,bucket 的 ACL 必须匹配,密匙可以以任何内容开头,成功后您将得到一个特殊的 URL。上传文档的大小被限制为 0 字节到 1 兆字节。注意过期日期(下面将详细介绍)。
策略的内容将被签名,并且是公共的,因此恶意用户很难伪造策略内容。这个属性可以确保站点的策略安全性 — 它确保根据特定的条件允许上传到 S3,在其他情况下则不允许上传。记住,您要为 S3 的使用付费,因此这非常重要。
过期日期被设置为 3000 年(是的,3000 年)。这样做的目的是使这个策略在所有实际使用中都不会过期。相反,您在以后可以将过期日期设置为 10 分钟,这样可以确保已删除的用户在超过最近一次合法访问的 10 分钟之后就不能再使用策略。但是这样设置的话,那些需要更长的时间上传文件的用户将被拒绝,他们将对此产生抱怨。因此,思考一下如何设置一个合适的过期日期,而不要随意设置它。
策略必须 为表单中指定的所有字段设置条件。这将防止出现伪造并鼓励实现完整的策略文档。
我们已经确立了一个策略,现在让我们设置上传表单。
S3 上传表单
回忆一下,我们曾讨论过与 S3 对象相关联的 Content-Type 元数据,以及如何在上传对象前设置它。不幸的是,这不适合用于图像上传,因为无法提前获知用户要上传的内容。例如,JPEG 图像和 PNG 图像就使用不同的内容类型(它们实际上称为 MIME 类型,并且几乎有几百种常见类型)。
解决方法就是使用一些中等级别的 JavaScript 代码。由于您将所有内容都放入了 Perl 脚本,因此必须转义所有 \ 和 $ 字符(因此产生稍微有些混乱的内容)。查看实际 JavaScript 生成的 HTML;您将在本系列的后续文章中使用 Template Toolkit 完成该工作,但是它的中心思想是使脚本完整简单。它非常简单,但很可惜的是可读性受到一些影响。
- ››Perl 6 发布
- ››部分 WM6.5 手机有望升级到 Windows Phone 7
- ››Perl 和 Amazon 云,第 1 部分:通过构建简单的照...
- ››Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将...
- ››Perl 和 Amazon 云,第 3 部分:上传图像并创建、...
- ››Perl 和 Amazon 云,第 4 部分:深入探究完整 mod...
- ››Perl 和 Amazon 云,第 5 部分:了解完整 mod_per...
- ››部分英特尔芯片不支持Windows 7“XP模式”
- ››Perl的5个常见错误
- ››Perl操作mysql数据库的方法
- ››Perl的经典用法
- ››部分VZPP无法正常访问怎么解决?
更多精彩
赞助商链接