Perl 和 Amazon 云,第 2 部分:通过 HTML 表单将数据安全地上传到 S3
2010-02-04 00:00:00 来源:WEB开发网我们(即 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]
]
}
- ››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无法正常访问怎么解决?
更多精彩
赞助商链接