WEB开发网
开发学院服务器云计算 Perl 和 Amazon 云,第 5 部分:了解完整 mod_per... 阅读

Perl 和 Amazon 云,第 5 部分:了解完整 mod_perl 站点的模板

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: 上传页面展示了两个上传对话框,它们都可以添加照片,Perl 和 Amazon 云,第 5 部分:了解完整 mod_perl 站点的模板(3),但是第二个对话框更加简单,在第二个对话框中,OnSubmitForm 函数就会失败,允许用户指定他们自己的类型,用户填入照片的 URL 和名称,这些内容随

上传页面展示了两个上传对话框。它们都可以添加照片,但是第二个对话框更加简单。在第二个对话框中,用户填入照片的 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> 

上一页  1 2 3 4 5 6  下一页

Tags:Perl Amazon 部分

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