Azure blob 首次写入

标签 azure go azure-blob-storage

这个official example写入 blob block 有一个步骤,它检查哪些 block 尚未提交:

    fmt.Println("Get uncommitted blocks list...")
    list, err := b.GetBlockList(storage.BlockListTypeUncommitted, nil)
    if err != nil {
        return fmt.Errorf("get block list failed: %v", err)
    }
    uncommittedBlocksList := make([]storage.Block, len(list.UncommittedBlocks))
    for i := range list.UncommittedBlocks {
        uncommittedBlocksList[i].ID = list.UncommittedBlocks[i].Name
        uncommittedBlocksList[i].Status = storage.BlockStatusUncommitted
    }

如果我正在创建一个肯定还不存在的 blob(具有多个 block )。跳过该代码有什么问题吗?

代码类似于:

    b := cnt.GetBlobReference(blockBlobName)
    err := b.CreateBlockBlob(nil)

    blockID := "00000"
    data := randomData(1984)
    err = b.PutBlock(blockID, data, nil)

    blockID2 := "00001"
    data2 := randomData(6542)
    err = b.PutBlock(blockID2, data2, nil)

    var uncommittedBlocksList []storage.Block
    uncommittedBlocksList = append(uncommittedBlocksList, 
        Block{
           ID:"00000"
           Status:BlockStatusUncommitted,
        },
        Block{
           ID:"00001"
           Status:BlockStatusUncommitted,
        },
    )
    err = b.PutBlockList(uncommittedBlocksList, nil)

最佳答案

If I'm creating a blob (with multiple blocks) that definitely doesn't yet exist. Is there any problem with skipping that code?

绝对不是。您当然可以跳过获取未提交 block 列表的代码。当您尝试上传 blob 但在中间失败并且您希望从最后一个失败的 block 恢复上传时,这种获取未提交列表的场景非常有用。通过跳过此代码,实质上是告诉 Azure 存储丢弃任何其他未提交的 block 并使用 block 列表中指定的 block 来创建 blob。

关于Azure blob 首次写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104400/

相关文章:

Azure ML 模型 - 进行预测时的数据转换

c# - AcquireTokenSilent 始终无法静默获取 token

opencv - Golang 异步人脸检测

golang 检查 tcp 端口打开

azure - 使用 Azure 数据湖进行分析

python - Azure 存储 Python SDK : Uploading file to Azure blob storage without writting it on my disk

Azure 数据工厂用户参数

Azure Functions 依赖项与 AzureFunctionsTools 依赖项发生冲突

go - 输入正确但在 golang 中输出 panic

azure - 无法使用匿名凭据访问帐户 myblobcontainer 中的容器 $root,并且在配置中找不到它们的凭据