2013-04-12 3 views
1

Можно ли создать AWS SDK в Perl ?. Мне нужно использовать услугу транскодера AWS из моего скрипта perl. Но я удивляюсь, что AWS SDK недоступен для Perl (http://aws.amazon.com/code). Или у них есть какой-либо другой метод использования PHP SDK в Perl-скрипте?AWS SDK в Perl

ответ

4

API - это просто «передача определенных вещей через HTTP». Для этого вам не нужна специальная языковая библиотека, хотя это упрощает работу. Любой может написать такую ​​обертку, а some people already have done that for Perl.

+0

Привет, Квентин, спасибо за ответ !!! На самом деле я хочу использовать услугу транскодера AWS. В настоящее время у меня есть PHP-скрипт для него, и он использует autoload.php, который создается автоматически при установке PHP SDK. – user2274163

+1

Какая [имеется документация по API] (http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html), показывающая, что HTTP-запросы, которые вам нужно сделать. – Quentin

+0

Это прекрасный Quentin, но я получаю информацию о входных видеофайлах через сервис AWS SQS. который использует библиотеку Aws/Sqs/SqsClient в PHP-скрипте. Могу ли я использовать эту же библиотеку для скрипта perl. или у нас есть какой-либо другой метод? – user2274163

1

Очень легко написать собственные модули Perl для работы с AWS API. Как отмечалось выше, если вы можете делать HTTP-вызовы и создавать подпись HMAC, любой язык может это сделать.

Однако в CPAN уже много модулей Perl, которые адресуют конкретные функции AWS, такие как S3 или EC2. Перейдите к http://www.cpan.org/src/, чтобы найти то, что вам нужно (например, SNS). Вы, как правило, найдете что-то, что удовлетворит ваши потребности.

1

http://www.timkay.com/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"' 

Проще говоря, инструмент выполняет эквивалентную "LS" на ведро S3, для этого префикса, и возвращает все имена файлов в этом префиксе, которые передаются в функцию exec. Оттуда вы можете видеть, что я слепо удаляю любые файлы, хранящиеся внутри.

(примечание: --no-ВХост помогает решить bucketnames с периодами в них, и вам не нужно использовать длинные URL-адреса, чтобы добраться из точки А в точку б.)

3

Много лет спустя, в настоящее время Paws , интерфейс Perl AWS. Это на CPAN.