我想从Azure继承迭代器ItemPaged-ItemPaged[TableEntity]到stream(Python)获取一个stream对象。可能吗
https://docs.microsoft.com/en-us/python/api/azure-core/azure.core.paging.itempaged?view=azure-python
https://docs.microsoft.com/en-us/python/api/azure-core/azure.core.paging.itempaged?view=azure-python
#更新于2021年8月11日 我实现了将Azure表备份到Azure Blob-Current process to backup Azure Tables。但我想改进这个过程,我正在考虑不同的选择。我尝试从Azure表获取流,以使用create\u blob\u from\u stream
我假设您希望从HTTP响应流式传输字节,而不是使用您接收的对象的迭代器
SDK中的每个API都支持一个关键字参数调用
raw_response_hook
,该调用使您能够访问HTTP响应对象,然后如果需要,允许您使用流下载API。请注意,由于有效负载被视为表示对象,因此无论发生什么情况,它都将预加载到内存中,但您仍然可以使用流语法回调只是一个参数:
请注意,这是相当先进的,您可能会遇到困难,这可能不符合您的确切要求。我们正在SDK上开发一种新模式,以简化类似这样的复杂场景,但尚未发布。您将能够使用
send_request
方法发送和接收原始请求,该方法为您提供对查询所有方面的绝对控制,例如解释您只想流式处理(内存中没有预加载)或默认情况下禁用反序列化如果您还有其他问题或需要澄清,请随时在Azure SDK for Python repo上发布一个问题:https://github.com/Azure/azure-sdk-for-python/issues
使用新建议进行编辑:
TableEntity
是一个类似于dict的类,因此在使用ItemPaged<TableEntity>
时可以json.dumps
作为字符串,或者json.dump
作为流。如果JSON转储引发异常,您可以在azure.core.serialization.AzureJSONEncoder
:https://github.com/Azure/azure-sdk-for-python/blob/1ffb583d57347257159638ae5f71fa85d14c2366/sdk/core/azure-core/tests/test_serialization.py#L83中尝试我们的JSON编码器(我在微软的Azure SDK for Python团队工作。)
参考:
相关问题 更多 >
编程相关推荐