Я пытаюсь получить JPEG с NVR через FFMPEG в цикле для дат.
Porcelain.shell("ffmpeg -rtsp_transport tcp -stimeout 10000000 -i '#{stream_url}' -vframes 1 -y #{images_path}").out
spawn(fn ->
File.exists?(images_path)
|> upload_and_inject_image(config, images_path, upload_image_path, start_date, timezone)
end)
Тогда В части загрузки и добавления я загружаю JPEG в Dropbox как
defp upload_image(status, image_path, upload_image_path) when status in [true, "true"] do
client = ElixirDropbox.Client.new(System.get_env["DROP_BOX_TOKEN"])
case ElixirDropbox.Files.upload(client, upload_image_path, image_path) do
{{:status_code, _}, {:error, error}} -> Logger.debug "Error while uploading. Error: #{inspect error}"
_ -> :noop
end
end
defp upload_image(_status, _image_path, _upload_image_path), do: :noop
Но загрузка файла работает нормально, если Porcelain.shell("ffmpeg -rtsp_transport tcp -stimeout 10000000 -i '#{stream_url}' -vframes 1 -y #{images_path}").out
получает результаты немного медленнее.
Если это работает быстро, Dropbox API выдает ошибки как too many operations at the same time
, я использую эту библиотеку для dropbox
Я пытался усыпить команду Porcelain.shell, но результаты остались прежними. Есть ли возможность одновременно обрабатывать несколько одновременных операций в Dropbox через эликсир.