WEB开发网
开发学院服务器云计算 Perl 和 Amazon 云,第 4 部分:深入探究完整 mod... 阅读

Perl 和 Amazon 云,第 4 部分:深入探究完整 mod_perl 站点的代码库

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: 删除照片的操作是由 deleteimageid 参数触发的,编辑照片名称可以通过 name 和 imageid 参数完成,Perl 和 Amazon 云,第 4 部分:深入探究完整 mod_perl 站点的代码库(10),创建新照片可以通过 URL、用户名和照片名完成,照片 bucket 是可选

删除照片的操作是由 deleteimageid 参数触发的。编辑照片名称可以通过 name 和 imageid 参数完成。创建新照片可以通过 URL、用户名和照片名完成。照片 bucket 是可选的,并且只有当处理程序调用发生在 S3 上传成功重定向到站点之后才会显示。

回忆一下策略,S3 成功重定向使用用户名作为 URL 参数的一部分。它也包含键和 bucket,因此您只需要从中创建一个照片。

实用函数

让我们看一下各种实用函数。

清单 9. 各种实用函数

sub qlog 
{ 
 printf STDERR @_; 
 print STDERR "\n"; 
} 
 
sub new_uuid 
{ 
 return $uuid->to_string($uuid->create()); 
} 
 
sub simpledb_image_domain_name 
{ 
 return simpledb_domain_name(IMAGE_MODE); 
} 
 
sub simpledb_comment_domain_name 
{ 
 return simpledb_domain_name(COMMENT_MODE); 
} 
 
sub simpledb_domain_name 
{ 
 return sprintf "%s.share.lifelogs.com", 
 (shift == IMAGE_MODE) ? 'share_photos' : 'share_comments'; 
} 

如果不希望每次编写 printf STDERR,那么 qlog 将非常有用。它还为您编写了行结束符。是否要将各种输出写入到 Apache 错误日志,这由您决定。同样:

new_uuid 用于生成新的 UUID。

simpledb_domain_name、simpledb_image_domain_name 和 simpledb_comment_domain_name 使用模式参数(可以是 IMAGE_MODE 或 COMMENT_MODE)来提供一个 SimpleDB 域。

SimpleDB 实用函数

SimpleDB 实用函数几乎和 第 3 部分 中的函数(simple_go.pl)完全相同。可从下面的 下载 小节下载。我将列出其中的不同:

get_comments 是一个新函数,用来获得全部评论,按照片 ID 编排,然后按照父评论 ID 或 noparent 显示。

qlog 替代了 print,而 VERBOSE 常量替代了 $verbose。

使用环境 AWS_KEY 和 AWS_SECRET_KEY 键为每个请求初始化服务。

传递 $mode 模式,而不是用于全局。

对于错误,没有使用 die(),您将尽可能优雅地处理它们。

域名通过 simpledb_domain_name 获得,而不是使用全局变量。

函数被重命名,因为 “get” 和 “put” 在多用途名称空间中不算好名字,就像旧的 simple_go.pl 脚本那样。

再次提醒一下,这段代码只针对每个属性使用一个值。如果任何属性使用了一个字符串数组,那么将只返回其中的一个字符串。在编写完属性后,只会留下一个值,即使之前有一组值。这大大简化了代码,但并不适合用于通用的 SimpleDB。

结束语

通过 本系列 第 2 部分和第 3 部分的介绍,现在您已经从总体上了解了完整的 mod_perl 站点的代码(这两篇文章的下载文件也可以从下面的下载小节获得)。最终生成的站点使用 Template Toolkit、S3 和 SimpleDB 来提供照片上传、主题浏览、添加评论、编辑和删除功能。

在第 5 部分中,我们将研究这个站点的模板。

本文示例源代码或素材下载

上一页  5 6 7 8 9 10 

Tags:Perl Amazon 部分

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