Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure队列存储:在邮件中发送文件_Azure_Azure Storage Blobs_Azure Storage Queues - Fatal编程技术网

Azure队列存储:在邮件中发送文件

Azure队列存储:在邮件中发送文件,azure,azure-storage-blobs,azure-storage-queues,Azure,Azure Storage Blobs,Azure Storage Queues,我正在评估Azure队列存储以在两个解耦的应用程序之间进行通信 我的要求是在队列消息中发送一个文件(平面文件,大小:从小到大) 根据我的理解,队列中的单个消息不能超过64KB,因此在消息中发送可变大小的文件是不可能的 我能想到的另一个解决方案是使用队列存储和blob存储的组合,即在队列消息中添加对文件的引用(在blob存储上),然后在需要时从blob中读取文件(使用队列消息中的引用/地址) 我的问题是,这是正确的方法吗?或者有没有其他优雅的方式来实现这一点 谢谢, Sandeep < P>虽然没

我正在评估Azure队列存储以在两个解耦的应用程序之间进行通信

我的要求是在队列消息中发送一个文件(平面文件,大小:从小到大)

根据我的理解,队列中的单个消息不能超过64KB,因此在消息中发送可变大小的文件是不可能的

我能想到的另一个解决方案是使用队列存储和blob存储的组合,即在队列消息中添加对文件的引用(在blob存储上),然后在需要时从blob中读取文件(使用队列消息中的引用/地址)

我的问题是,这是正确的方法吗?或者有没有其他优雅的方式来实现这一点

谢谢, Sandeep

< P>虽然没有正确的方法,因为你可以把任何你想要的东西放入队列消息中(在大小限制内),考虑一下:如果你的文件大小可以超过64K,你就无法将这些文件存储在队列消息中,所以你别无选择,只能将你的内容存储在其他地方(例如BLUB)。对于64K以下的文件,您需要决定是使用两种不同的方法来处理文件,还是只使用blob作为文件源,并采用一致的方法

还要记住,消息传递会占用带宽和处理时间。如果您将文件存储在队列消息中,则需要通过大量消息传递来说明这一点,并且还需要从队列消息中提取文件内容


还有一件事:如果您将内容存储在blob中,您可以使用任意数量的工具来操作这些文件,并且您的文件将永久保留在blob存储中(直到您明确删除它们)。队列消息必须在处理后删除,这样您就没有保留文件的选项。这可能是一个需要考虑的重要方面。

您在BLB存储和BURB URL中存储文件的解决方案是正确的方法。@ GuravaMangRe-我同意这是一个很好的(很棒的)方法,但是不知道OP的应用程序,我认为我们不能肯定地说它是正确的方法。谢谢戴维的详细回答。谢谢。顺便问一下,有没有一种方法可以让我们在处理完消息后将消息保留在队列中?我希望保留邮件后处理以用于审核。我们可以将队列中的消息标记为“完成”吗?这些队列实际上不是这样工作的。最终发生不可见性超时,然后消息再次可见,导致代码再次对其进行评估/处理。出于历史记录/日志记录/审核目的,您需要将邮件卸载到某个地方。感谢您的确认,我也在考虑将其归档到某个地方