【发布时间】:2017-11-30 05:17:04
【问题描述】:
我想在 Azure 存储中使用追加 blob。 当我上传 blob 时,我应该选择块大小。 选择块大小时应该考虑什么? 如果我上传的文件大小大于块大小,我认为没有区别。 如何选择合适的块大小?
【问题讨论】:
我想在 Azure 存储中使用追加 blob。 当我上传 blob 时,我应该选择块大小。 选择块大小时应该考虑什么? 如果我上传的文件大小大于块大小,我认为没有区别。 如何选择合适的块大小?
【问题讨论】:
根据您的描述,我做了一些研究,您可以参考它以更好地了解附加 blob 块:
我刚刚检查了CloudAppendBlob.AppendText 和CloudAppendBlob.AppendFromFile。如果文件大小或文本内容大小小于 4MB,则将其上传到新的单个块。这里我使用CloudAppendBlob.AppendText 追加了3次文本内容(字节大小小于4MB),您可以参考网络跟踪如下:
如果内容大小 > 4MB,则客户端 SDK 会将内容分成小块 (4MB) 并上传到每个块中。这里我上传了一个48.8MB左右的文件,你可以参考网络跟踪如下:
正如 Gaurav Mantri 提到的,您可以为低速网络选择小块大小。此外,对于小块大小的写入,您会为写入请求检索更好的性能,但是当您读取数据时,您的数据跨越多个单独的块,这会减慢您的读取请求。这取决于您的应用程序预期的写入/读取比率,为了获得最佳读取,我建议您需要将批量写入尽可能接近 4MB,这会导致写入请求速度较慢,但读取速度会快得多。
【讨论】:
决定块大小时需要考虑的几点:
Append Blob,块的最大大小可以是4 MB,所以你不能超过这个数字。50000 blocks,因此您需要将 blob 大小除以 50000 来确定块的大小。例如,如果您要上传一个 100MB 的文件并决定选择 100 字节的块,您最终会得到 1048576 (100x1024x1024/100) 个块,这超过了 50000 的允许限制,因此不允许这样做。Internet speed。如果你有一个非常好的互联网连接,你可以达到 4MB 块大小。对于不太好的 Internet 连接,您可以降低限制。例如,我总是尝试使用 256-512KB 的块大小,因为我的 Internet 连接不好。【讨论】: