我想从 Azure 继承迭代器 ItemPaged - ItemPaged[TableEntity] 获取一个流对象到 Stream (Python)。可能吗?
I want to get a stream object from Azure Inheritance Iterator ItemPaged - ItemPaged[TableEntity] to Stream (Python). Is it possible?
我想从 Azure 继承迭代器 ItemPaged - ItemPaged[TableEntity] 获取一个流对象到流 (Python)。可能吗?
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 Tables 获取流以使用 create_blob_from_stream
我假设您想从 HTTP 响应中流式传输字节,而不是使用您接收到的对象的迭代器。
SDK 中的每个 API 都支持关键字参数调用 raw_response_hook
,使您可以访问 HTTP 响应对象,然后如果需要,可以使用流下载 API到。请注意,由于有效负载被视为表示对象,因此无论如何都会将其预加载到内存中,但您仍然可以使用流语法。
回调只是一个参数:
def response_callback(response):
# Do something with the response
requests_response = response.internal_response
# Use "requests" API now
for chunk in requests_response.iter_content():
work_with_chunk(chunk)
请注意,这是非常高级的,您可能会遇到困难,并且这可能不完全符合您的要求。我们正在开发一种新的 SDK 模式来简化这样的复杂场景,但它还没有发布。您将能够使用 send_request
方法发送和接收原始请求,这使您可以对查询的所有方面进行绝对控制,例如解释您只想流式传输(不在内存中预加载)或禁用反序列化默认情况下。
如果您有其他问题或需要说明,请随时在 Python 存储库的 Azure SDK 上提出问题:https://github.com/Azure/azure-sdk-for-python/issues
使用新建议进行编辑: TableEntity
是一个类似 class 的字典,因此您可以将 json.dumps
作为字符串,或 json.dump
作为流同时使用 ItemPaged<TableEntity>
。如果 JSON 转储引发异常,您可以在 azure.core.serialization.AzureJSONEncoder
中尝试我们的 JSON 编码器:https://github.com/Azure/azure-sdk-for-python/blob/1ffb583d57347257159638ae5f71fa85d14c2366/sdk/core/azure-core/tests/test_serialization.py#L83
(我在 MS 工作,负责 Python 团队的 Azure SDK。)
参考:
我想从 Azure 继承迭代器 ItemPaged - ItemPaged[TableEntity] 获取一个流对象到流 (Python)。可能吗?
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 Tables 获取流以使用 create_blob_from_stream
我假设您想从 HTTP 响应中流式传输字节,而不是使用您接收到的对象的迭代器。
SDK 中的每个 API 都支持关键字参数调用 raw_response_hook
,使您可以访问 HTTP 响应对象,然后如果需要,可以使用流下载 API到。请注意,由于有效负载被视为表示对象,因此无论如何都会将其预加载到内存中,但您仍然可以使用流语法。
回调只是一个参数:
def response_callback(response):
# Do something with the response
requests_response = response.internal_response
# Use "requests" API now
for chunk in requests_response.iter_content():
work_with_chunk(chunk)
请注意,这是非常高级的,您可能会遇到困难,并且这可能不完全符合您的要求。我们正在开发一种新的 SDK 模式来简化这样的复杂场景,但它还没有发布。您将能够使用 send_request
方法发送和接收原始请求,这使您可以对查询的所有方面进行绝对控制,例如解释您只想流式传输(不在内存中预加载)或禁用反序列化默认情况下。
如果您有其他问题或需要说明,请随时在 Python 存储库的 Azure SDK 上提出问题:https://github.com/Azure/azure-sdk-for-python/issues
使用新建议进行编辑: TableEntity
是一个类似 class 的字典,因此您可以将 json.dumps
作为字符串,或 json.dump
作为流同时使用 ItemPaged<TableEntity>
。如果 JSON 转储引发异常,您可以在 azure.core.serialization.AzureJSONEncoder
中尝试我们的 JSON 编码器:https://github.com/Azure/azure-sdk-for-python/blob/1ffb583d57347257159638ae5f71fa85d14c2366/sdk/core/azure-core/tests/test_serialization.py#L83
(我在 MS 工作,负责 Python 团队的 Azure SDK。)
参考: