将数据上传或下载到云服务(使用 TAzureBlobService 或 TAmazonStorageService)时,似乎没有任何方法可以获取有关上传/下载进度的反馈。
我可以看到最终调用了 TIdTCPClientCustom.Connect ,并且在该函数中,如果不存在连接,它会为连接创建一个默认的 IOHandler(除非使用 SSL,否则它不会)。如果我可以为该 IOHandler 设置 OnWorkBegin、OnWorkEnd 和 OnWork 事件,那么我可以跟踪进度,但我看不到这样做。
如果使用 SSL 连接,则创建一个 IOHandler(例如在 TAzureBlobService.PrepareRequest 中),但 IOHandler 是一个接口并且没有 OnWorkBegin 等属性。
我认为解决方案是创建一个派生自 TAzureBlobService 或 TAmazonStorageService 的类,然后覆盖 PrepareRequest 方法。在那里我可以访问 TCloudHTTP 实例(因为它是在 PrepareRequest 中创建的),然后我可以访问 IOHandler。但是如何创建 IOHandler(因为它被定义为接口)并设置事件(不是该接口的一部分)?
谢谢