WEB开发网
开发学院服务器云计算 Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将... 阅读

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

 2010-02-04 00:00:00 来源:WEB开发网   
核心提示: 我们(即 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 部分

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