Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ErrorCode:追加到blob时InvalidBlobType_Python_Azure_Azure Blob Storage - Fatal编程技术网

Python ErrorCode:追加到blob时InvalidBlobType

Python ErrorCode:追加到blob时InvalidBlobType,python,azure,azure-blob-storage,Python,Azure,Azure Blob Storage,我试图将新的json行附加到容器中现有的json文件中。下面是我的代码: import json import os from azure.storage.blob import ( BlockBlobService, AppendBlobService ) from DBConnection import account_name, container_name, account_key def getData(self, resp, filename): bl

我试图将新的json行附加到容器中现有的json文件中。下面是我的代码:

import json
import os

from azure.storage.blob import (
    BlockBlobService, AppendBlobService
)
from DBConnection import account_name, container_name, account_key


def getData(self, resp, filename):

        blobService = BlockBlobService(account_name=account_name, account_key=account_key)
        appendblobservice = AppendBlobService(account_name=account_name, account_key=account_key)

        resp = json.dumps(self.resp) #CONVERT FROM DICT TO STR

        filename = self.filename + ".json" #eg: 'ww1_abcded_202002031100.json'

        file_exist = blobService.exists(container_name, filename)

        if file_exist is False:
            print("inside IF")
            blobService.create_blob_from_text(container_name, filename, self.resp)


        else:
            print("Inside else")
            appendblobservice.append_blob_from_text(container_name, filename, self.resp)
            print("2345675t43")
我在
append\u blob\u from\u text
处出错,并产生以下错误:

azure.common.AzureConflictHttpError:blob类型对此操作无效。错误代码:InvalidBlobType InvalidBlobTypeblob类型对于此操作无效


我相信您会遇到此错误,因为您调用的方法仅适用于
块Blob
上的
追加Blob

您的以下代码创建了一个块Blob:

blobService.create_blob_from_text(container_name, filename, self.resp)
但是,您正在尝试执行仅附加blob的操作:

appendblobservice.append_blob_from_text(container_name, filename, self.resp)
正因为如此,你才会犯这个错误

两种可能的解决办法:

  • 如果希望使用附加blob,请创建附加blob而不是块blob。您可以使用创建一个空的append blob,然后使用
    append\u blob\u from\u text
    方法追加内容
  • 如果希望使用块blob,那么对于附加内容,首先需要使用方法下载blob的内容,附加新内容,然后使用方法重新加载blob

  • @我提出了一个新问题。希望你能帮忙!谢天谢地。你为什么要删除你之前的问题?我认为这太傻了@GauravMantriNo问题太傻了我的朋友:)。我使用了第一个解决方案,最终解决了!非常感谢你。只是想知道是否可以在换行符中指定追加,而不是从方法本身指定
    {abc}{def}
    {abc}\n{def}