Можно ли создать AWS SDK в Perl ?. Мне нужно использовать услугу транскодера AWS из моего скрипта perl. Но я удивляюсь, что AWS SDK недоступен для Perl (http://aws.amazon.com/code). Или у них есть какой-либо другой метод использования PHP SDK в Perl-скрипте?AWS SDK в Perl
ответ
API - это просто «передача определенных вещей через HTTP». Для этого вам не нужна специальная языковая библиотека, хотя это упрощает работу. Любой может написать такую обертку, а some people already have done that for Perl.
Очень легко написать собственные модули Perl для работы с AWS API. Как отмечалось выше, если вы можете делать HTTP-вызовы и создавать подпись HMAC, любой язык может это сделать.
Однако в CPAN уже много модулей Perl, которые адресуют конкретные функции AWS, такие как S3 или EC2. Перейдите к http://www.cpan.org/src/, чтобы найти то, что вам нужно (например, SNS). Вы, как правило, найдете что-то, что удовлетворит ваши потребности.
Я нашел Тим Кей «АМС» и «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-адреса, чтобы добраться из точки А в точку б.)
Много лет спустя, в настоящее время Paws , интерфейс Perl AWS. Это на CPAN.
Привет, Квентин, спасибо за ответ !!! На самом деле я хочу использовать услугу транскодера AWS. В настоящее время у меня есть PHP-скрипт для него, и он использует autoload.php, который создается автоматически при установке PHP SDK. – user2274163
Какая [имеется документация по API] (http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html), показывающая, что HTTP-запросы, которые вам нужно сделать. – Quentin
Это прекрасный Quentin, но я получаю информацию о входных видеофайлах через сервис AWS SQS. который использует библиотеку Aws/Sqs/SqsClient в PHP-скрипте. Могу ли я использовать эту же библиотеку для скрипта perl. или у нас есть какой-либо другой метод? – user2274163