Perl 和 Amazon 云,第 5 部分:了解完整 mod_perl 站点的模板
2010-02-04 00:00:00 来源:WEB开发网上传页面展示了两个上传对话框。它们都可以添加照片,但是第二个对话框更加简单。在第二个对话框中,用户填入照片的 URL 和名称,这些内容随后被 POST 到 /urluploaded,后者正是 urluploaded.tmpl。在显示该模板时,将自动调用图像参数处理程序。用户名从服务器获得并且是一个隐藏了表单的 POST 参数。
第一个表单非常复杂。幸运的是,可以阅读本系列的 第 2 部分,其中解释了有关 S3 上传的所有内容,因此您应当不会感到陌生。
对第 2 部分的 s3form.pl的主要修改包括:
success_action_redirect 将用户名和照片名作为参数传递。策略被修改为只需要字符串中截至用户名的一部分,但是不包括用户名。
策略和签名从服务器传递。
AWS 访问和秘密密匙被放到 env 散列中从服务器传递。
OnSubmitForm 函数需要一个名称并将其作为参数添加到 success_action_redirect 表单字段并转义(注意,在决定 MIME 类型之前 需要用到名称,但是名称只有在对表单执行 POST 前被添加到 URL。)
如果没有找到 MIME 类型,OnSubmitForm 函数就会失败,允许用户指定他们自己的类型。
s3uploaded.tmpl
在 S3 上传中将使用该模板。
清单 3. 在上传中使用 s3uploaded.tmpl 模板
[% success = params.result %]
<html>
<head>
<title>[% IF success %]Successful[% ELSE %]Unsuccessful[% END %]
Upload Page For [% params.user %]</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
[% IF success %]Congratulations[% ELSE %]Sorry[% END %], [% params.user %].
You have [% IF success %]successfully[% ELSE %]unsuccessfully[% END %]
uploaded [% params.key %] to S3 bucket [% params.bucket %]
named [% params.name %].<p>
(etag is [% params.etag %] but I doubt you care.)
<p>
[% IF success %]
<a href="http://[% params.bucket %].s3.amazonaws.com/[% params.key %]">
Your new upload is probably here. Let's see if it displays already.
<img src="http://[% params.bucket %].s3.amazonaws.com/[% params.key %]">
</a>
[% END %]
<p>
You can now go back to <a href="/upload">uploading</a> or
<a href="/">the main page</a>.
</body>
</html>
- ››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无法正常访问怎么解决?
更多精彩
赞助商链接