是否可以在 Perl 中创建 AWS 开发工具包?我需要从我的 perl 脚本中使用 AWS 转码器服务。但我想知道 AWS SDK 不适用于 Perl(http://aws.amazon.com/code)。或者他们有任何其他方法可以在 Perl 脚本中使用 PHP SDK?
4 回答
API 只是“通过 HTTP 发送特定的东西”。您不需要为此使用特定于语言的库,尽管它确实使事情变得更容易。任何人都可以编写这样的包装器,有些人已经为 Perl 做到了。
多年后,现在有了Paws,一个 Perl AWS 接口。它在 CPAN 上。
我发现 Tim Kay 的“aws”和“s3”工具非常有用。它们是用 Perl 编写的。它具有 --exec 的额外优势,因此您可以直接将命令附加到输出,以 AWS 的原始状态。让国际字符和其他垃圾作为文件名的可悲借口对我来说是一种恐惧。使用 Tim 的工具集,我能够通过使用 --exec 调用文件名的前缀(也是唯一的)然后直接对其进行操作来解决该问题,而不是使用元字符和其他废话。
例如:
/123/456/789/You can't be serious that this is really a filename.txt
/123/456/901/Oh!Yes I can! *LOL* Honest!.txt
核对第一个:
aws ls --no-vhost mybucketname/123/456/789/ --exec='system "aws", "rm", "--no-vhost", "$bucket/$key"'
简而言之,该工具在 S3 存储桶上针对该前缀执行等效的“ls”,并返回该前缀中的所有文件名,这些文件名将传递给 exec 函数。从那里,您可以看到我正在盲目地删除其中包含的所有文件。
(注意:--no-vhost 有助于解析带有句点的存储桶名称,您不需要使用长 URL 来从 a 点到 b 点。)
编写自己的 Perl 模块以使用 AWS API 相当容易。如上所述,如果您可以进行 HTTP 调用并创建 HMAC 签名,那么任何语言都可以做到。
但是,CPAN 上已经有很多 Perl 模块处理特定的 AWS 功能,例如 S3 或 EC2。访问http://www.cpan.org/src/搜索您需要的内容(例如,SNS)。您通常会找到满足您需求的东西。