При загрузке или загрузке данных в облачные сервисы (используя TAzureBlobService или TAmazonStorageService), похоже, нет никакого способа получить отзыв о ходе загрузки / выгрузки.
Я вижу, что в конечном итоге вызывается TIdTCPClientCustom.Connect, и в этой функции он создает IOHandler по умолчанию для соединения, если оно не существует (и этого не происходит, если не используется SSL). Если бы я мог установить события OnWorkBegin, OnWorkEnd и OnWork для этого IOHandler, то я мог бы отслеживать прогресс, но я не вижу способа сделать это.
Если используется соединение SSL, то создается IOHandler (например, в TAzureBlobService.PrepareRequest), но IOHandler является интерфейсом и не имеет свойств OnWorkBegin и т. Д.
Я думаю, что решение состоит в том, чтобы создать класс, произошедший от TAzureBlobService или TAmazonStorageService, а затем переопределить метод PrepareRequest. В этом я могу получить доступ к экземпляру TCloudHTTP (как он создан в PrepareRequest), и с этого я могу получить доступ к IOHandler. Но как мне создать этот IOHandler (как он определен как интерфейс) и установить события (которые не являются частью этого интерфейса)?
Спасибо