WEB开发网      婵犻潧鍊婚弲顐︽偟椤栨稓闄勯柦妯侯槸閻庤霉濠婂骸浜剧紒杈ㄥ笚閹峰懘鎮╅崹顐ゆ殸婵炴垶鎸撮崑鎾趁归悩鐑橆棄闁搞劌瀛╃粋宥夘敃閿濆柊锕傛煙鐎涙ê鐏f繝濠冨灴閹啴宕熼鍡╀紘婵炲濮惧Λ鍕叏閳哄懎绀夋繛鎴濈-楠炪垽鎮归崶褍妲婚柛銊ュ缁傚秹鏁撻敓锟� ---闂佹寧娲╅幏锟�
开发学院服务器云计算 Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将... 阅读

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

 2010-02-04 00:00:00 来源:WEB开发网 闂侀潧妫撮幏锟�闂佸憡鍨电换鎰版儍椤掑倵鍋撳☉娆嶄沪缂傚稄鎷�婵犫拃鍛粶闁靛洤娲ㄩ埀顒佺⊕閵囩偟绱為敓锟�闂侀潧妫撮幏锟�  闂佺ǹ绻楀▍鏇㈠极閻愬搫绾ч柕濠忕細閼割亜顪冪€n剙浠ф繛鍫熷灥椤曘儵顢欓悡搴ば�
核心提示: 我们(即 Web 站点的运作者)现在在 S3 上设置了一个名为 images.share.lifelogs.com 的 bucket,这个 bucket 拥有相应的访问控制,Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将数据安全地上传到 S3(2),允许执行公共的读操作,如

我们(即 Web 站点的运作者)现在在 S3 上设置了一个名为 images.share.lifelogs.com 的 bucket。这个 bucket 拥有相应的访问控制,允许执行公共的读操作。如果使用 Amazon 文档难以实现这一点,那么可以使用 S3Fox 和 JungleDisk 等工具或其他 S3 接口来设置 bucket。如果遵循这种方法,那么还将得到 AWS 访问权和密匙。

您将使用一种策略来控制上传;该策略是使用 JSON 数据格式表示的一组规则集。您将使用您的 Amazon 密匙对策略进行签名。

对策略签名是通过 Digest::HMAC_SHA1 Perl 模块完成的。您首先必须将策略转化为 Base64,去掉所有换行符,对生成的数据进行签名,使用 Base64 对签名进行编码。然后给 Ms. Elle Cowalsky 汇去 1.28 美元,并祈祷她将您所需的签名寄回来。只是开个玩笑!试试下面的代码吧:

清单 1. 对上传策略签名

my $aws_secret_access_key = 'get it from 
 http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key'; 
 
my $policy = 'entire policy here'; 
$policy = encode_base64($policy); 
$policy =~ s/\n//g; 
 
my $signature = encode_base64(hmac_sha1($policy, $aws_secret_access_key)); 
 
$signature =~ s/\n//g; 

S3 上传策略

在构建表单之前,首先处理策略;这意味着您将在编写 HTML 之前确定您的安全性和可用性目标,这始终是一种可取的做法。

策略文档相当简单:

清单 2. 上传策略文档

{ 
 "expiration": "3000-01-01T00:00:00Z", 
 "conditions": [ 
  {"bucket": "images.share.lifelogs.com"}, 
  {"acl": "public-read"}, 
  ["starts-with", "$key", ""], 
  {"success_action_redirect": "http://share.lifelogs.com/s3uploaded/$user"}, 
  ["content-length-range", 0, 1048576] 
 ] 
} 

上一页  1 2 3 4 5  下一页

Tags:Perl Amazon 部分

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