我想在Azure存储中使用Append blob。 当我上传blob时,我应该选择块大小。 选择块大小时我应该考虑什么? 如果我上传的文件大小超过块大小,我认为没有区别。 如何选择合适的块大小?
答案 0 :(得分:3)
根据你的描述,我做了一些研究,你可以参考它来更好地理解附加blob的块:
我刚检查了CloudAppendBlob.AppendText
和CloudAppendBlob.AppendFromFile
。如果文件大小或文本内容大小小于4MB,则将其上传到新的单个块。在这里,我使用CloudAppendBlob.AppendText
三次附加文本内容(字节大小小于4MB),您可以按如下方式引用网络跟踪:
对于内容大小> 4MB,然后客户端SDK将内容分成小块(4MB)并将它们上传到每个块。在这里,我上传了一个大小约为48.8MB的文件,您可以按如下方式引用网络跟踪:
正如Gaurav Mantri所说,你可以为低速网络选择小块大小。此外,对于小块大小写入,您将检索写入请求的更好性能,但是当您读取数据时,您的数据跨越多个单独的块,这将减慢您的读取请求。它取决于您的应用程序所期望的写入/读取比率,对于最佳读取,我建议您需要批量写入尽可能接近4MB,这会使您的写入请求速度变慢,但读取速度要快得多。
答案 1 :(得分:1)
决定块大小时需要考虑的一些事项:
Append Blob
,则区块的最大尺寸可以为4 MB
,因此您无法超越该数字。50000 blocks
,因此您需要将blob大小除以50000以确定块的大小。例如,如果您要上传100MB文件并决定选择100字节块,则最终会得到1048576(100x1024x1024 / 100)块,超过允许限制50000,因此不允许这样做。Internet speed
。如果你有一个非常好的Internet连接,你可以达到4MB的块大小。对于不太好的Internet连接,您可以减少限制。例如,我总是尝试使用256-512KB的块大小,因为我的Internet连接不好。