Azure Blob 存储 - “写入操作”到底是什么意思?

Joh*_*ten 2 azure azure-storage azure-blob-storage

我使用Azure 定价计算器来估算文件(更具体地说,SQL 备份)的存储成本。

我目前正在选择帐户Block Blob Storage类型Blob Storage

定价计算器中有一个部分显示了写入操作的成本Write Operations并描述了哪些 API 调用:

The following API calls are considered Write Operations: PutBlob, PutBlock, PutBlockList, AppendBlock, SnapshotBlob, CopyBlob and SetBlobTier (when it moves a Blob from Hot to Cool, Cool to Archive or Hot to Archive).

我查看了PutBlobPutBlock的文档,但两者似乎都没有在任何地方真正提到“文件”(除了 PubBlob 提到文件名)。

描述PutBlob说:

The Put Blob operation creates a new block, page, or append blob, or updates the content of an existing block blob.

描述PutBlock说:

The Put Block operation creates a new block to be committed as part of a blob.

是每个文件 1 个块还是一个文件多个块?

这2个Put命令是用来上传文件的吗?

写操作实际上意味着每个文件 1 次操作吗?例如,如果我有 100 个文件,那是 100 次写操作吗?或者 1 个写操作可以在单个操作中写入多个文件吗?

写操作

Gau*_*tri 7

让我尝试用几个场景来解释它。考虑到您正在使用块 blob,我将仅解释如何使用它们。

  1. 上传 1 MB 文件:假设您有一个 1 MB 本地文件,希望将其保存为块 blob。考虑到文件比较小,可以使用Put Blob操作将该文件上传到blob存储中。由于您仅调用此操作一次,因此您将执行一次写入操作。
  2. 上传 1 GB 文件:现在假设您有一个 1 GB 本地文件,希望将其保存为块 blob。考虑到文件大小很大,您决定将文件逻辑上拆分为 1 MB 块(即,将 1 GB 本地文件逻辑上拆分为 1024 个块)。顺便说一句,这些块也称为块。现在,您使用操作上传每个块Put Block,然后最终使用Put Block List操作将这些块缝合在一起以创建 Blob。由于您要调用 1024 个放置块操作(每个块一个),然后调用 1 个放置块列表操作,因此您将执行 1025 个写入操作 (1024 + 1)。

现在回答您的具体问题:

是每个文件 1 个块还是一个文件多个块?

这取决于您是否使用Put Blob操作或Put Block操作来上传文件。在上面的场景 1 中,每个文件(或 blob)只有 1 个块,因为您使用了 put blob 操作,但在场景 2 中,每个文件(或 blob)有 1024 个块,因为您使用了 put block 操作。

这2个Put命令是用来上传文件的吗?

是的。同样,根据文件大小,您可能决定使用 put blob 或 put block/put block list 操作来上传文件。put blob 操作可以上传的文件的最大大小为 100 MB。这意味着,如果文件大小大于 100 MB,则必须使用 put block/put block list 操作来上传文件。但是,如果文件大小小于 100 MB,则可以使用 put blob 或 put block/put block list 操作。

写操作实际上意味着每个文件 1 次操作吗?例如,如果我有 100 个文件,那是 100 次写操作吗?

至少,是的。如果这 100 个文件中的每一个都使用 put blob 操作上传,则总计将达到 100 次写入操作。

或者 1 个写操作可以在单个操作中写入多个文件吗?

不,那不可能。