Вам просто нужно установить событие в s3 bucket - put object - для запуска лямбда-функции (вы получите доступ к описанию объекта, загруженного в этот s3-сегмент через первый параметр лямбда-функции). [118 ]
Если вы можете преобразовать видеофайл в аудио на вашем локальном компьютере, используя некоторые внешние библиотеки, то вам нужно создать zip-файл, содержащий вашу лямбда-функцию (в корне zip-файла), а также зависимости.
Это довольно просто в случае с Node. Создайте новую папку, запустите npm init
, установите необходимые модули, создайте файл index.js, куда вы поместите свой код Node. Zip все содержимое этой папки (не сама папка). Когда вы создаете новую лямбда-функцию, выберите загрузку этого zip-файла.
Если вам интересно, как программно взаимодействовать с ресурсами AWS и манипулировать ими, отметьте aws-sdk
, который вы можете импортировать как модуль, и использовать его для этой цели.
Так что в основном вам нужно внутри вашей лямбда-функции проанализировать аргумент event
(первый параметр) для получения корзины и ключа загруженного объекта. Затем вы вызовете метод s3.getObject
для получения данных. Обработайте данные с вашей собственной логикой. Вызовите s3.putObject
, чтобы сохранить вновь преобразованные данные в новом местоположении S3.
Lambda имеет доступ к собственной локальной файловой системе, если ваш код должен хранить там некоторые данные. Вам просто нужно указать абсолютный путь к файлу, например /tmp/output.mp3
. Чтобы получить его, вы можете использовать модуль fs
. Затем вы можете продолжить с s3.putObject
.
Смотрите на ExternalInterface-класс.
Из ссылки AS3-языка:
Классом ExternalInterface является Внешний API, интерфейс прикладного программирования, который включает простую коммуникацию между ActionScript и контейнером Flash player – например, страница HTML с JavaScript. Adobe рекомендует использовать ExternalInterface для всей коммуникации JavaScript-ActionScript.
И это - работа как это:
ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
ExternalInterface.call("sendToJavaScript", input.text);
Можно ли отправить параметры и получить ли обратные вызовы... довольно прохладные, правильно?;)
Поскольку я знаю, что это будет также работать над AS2...
Поскольку Jochen сказал, что ExternalInterface является способом пойти, и я могу подтвердить, что он работает с AS2.
Если Вы планируете инициировать навигацию или что-нибудь, что влияет на область, где флэш-память находится, не делают этого непосредственно от функции, которую Вы вызываете от флэш-памяти. Flash ожидает возвращаемое значение от функции, которую он вызывает и если объект флэш-памяти не будет существовать, когда функция будет завершена, флеш-плагин откажет.
Если необходимо сделать навигацию или изменить содержание, можно добавить вызов метода setTimeout (в функцию js). Это создаст новый поток и даст флэш-памяти возвращаемое значение, которое она ожидает.