我想在块中使用python将文件上载到azureblob。(使用PUT块)

2024-09-30 16:26:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python将文件上载到azure blob。我想用put_block做同样的事情,把文件分成几个小部分,然后上传,然后合并。这样在文件较大的情况下,它不会失败。有人能帮我吗?我在StackOverflow上尝试了多种解决方案。什么都没用

from  azure.storage.blob import BlockBlobService

def uploadFile():
    accountey="account-key"
    accountName="account-name"
    containerName="container-name"

    blobService =BlockBlobService(account_name=accountName, account_key=accountey )
    blobService.create_container(containerName)
    blobService.create_blob_from_path(containerName, "image1.jpg", "./images/python.jpg")

uploadFile()

我也试过了这不管用:

^{pr2}$

Tags: 文件keynamefromputcontainercreateaccount
1条回答
网友
1楼 · 发布于 2024-09-30 16:26:47

我在代码中看到的一个问题是您使用index变量创建块id。请注意,块id的长度必须相同。在您的例子中,前10个块(0-9)将有一个长度,然后接下来的90个块(10-99)将具有不同的长度,这将导致您的blob上载失败。在

两种可能的解决方案:

  1. Pad您的index变量:可以用适当数量的零填充index变量,使它们的长度相等。例如,您可以做类似00000001….00090010。。。在
  2. 使用UUID创建块id。更多细节请看这篇文章:How to create a GUID/UUID in Python。在

不久前我写了一篇关于它的博文,你可能会觉得有用:https://gauravmantri.com/2013/05/18/windows-azure-blob-storage-dealing-with-the-specified-blob-or-block-content-is-invalid-error/。在

相关问题 更多 >