Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
C# 坚持使用C中的Azure append blob附加图像#_C#_Azure_Azure Blob Storage - Fatal编程技术网

C# 坚持使用C中的Azure append blob附加图像#

C# 坚持使用C中的Azure append blob附加图像#,c#,azure,azure-blob-storage,C#,Azure,Azure Blob Storage,我可以将图像附加到字节?我试过了,但不管用。。它可以增大尺寸,但不能反射图像。。它总是返回我首先附加的第一个图像。。那么,请帮助我如何添加图像?json/文本文件工作正常,但我被附加图像卡住了 所以,请帮助我怎么做 这是我的密码 CloudAppendBlob cloudAppendBlob = cloudBlobContainer.GetAppendBlobReference(fileName); bool exist = await cloudAppendBl

我可以将图像附加到字节?我试过了,但不管用。。它可以增大尺寸,但不能反射图像。。它总是返回我首先附加的第一个图像。。那么,请帮助我如何添加图像?json/文本文件工作正常,但我被附加图像卡住了

所以,请帮助我怎么做

这是我的密码

        CloudAppendBlob cloudAppendBlob = cloudBlobContainer.GetAppendBlobReference(fileName);
        bool exist = await cloudAppendBlob.ExistsAsync();
        if(!exist)
        {
            await cloudAppendBlob.CreateOrReplaceAsync();
        }
        cloudAppendBlob.Properties.ContentType = fileType;
        stream.Position = 0;
        
        await cloudAppendBlob.AppendBlockAsync(stream);

不能使用相同的名称附加图像。如果这样做,它将用相同的名称替换图像文件。如果你上传另一张图片,它会根据上传的图片创建一张新图片。请尝试下面的代码

私有云blobContainer blobContainer

    public AzureBlobHelper()
    {
      
        try
        {
            // Get azure table storage connection string.  

            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));

            CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
            blobContainer = cloudBlobClient.GetContainerReference(CloudConfigurationManager.GetSetting("StorageContainer"));

            // Create the container and set the permission  
            if (blobContainer.CreateIfNotExists())
            {
                blobContainer.SetPermissions(
                    new BlobContainerPermissions
                    {
                        PublicAccess = BlobContainerPublicAccessType.Blob
                    }
                );
            }
        }
        catch (Exception ExceptionObj)
        {
           // throw ExceptionObj;
        }
    }

    public string UploadFile(string FileName, string LocalPath, string AzureBlobPath, string ContentType = "")
    {
        string AbsoluteUri;

        try
        {
            CloudBlockBlob blockBlob;
            // Create a block blob  
            blockBlob = blobContainer.GetBlockBlobReference(AzureBlobPath + FileName);
            // Set the object's content type  
            blockBlob.Properties.ContentType = ContentType;
            
            blockBlob.UploadFromFile(LocalPath);
            // get file uri  
            AbsoluteUri = blockBlob.Uri.AbsoluteUri;
        }
        catch (Exception ExceptionObj)
        {
            throw ExceptionObj;
        }
        return AbsoluteUri;
    }

为什么要为此使用append blob?对于append blob来说,这是一个完全错误的用例。您应该为二进制内容使用块blob。@GauravMantri,因为在我的用例中,我想创建一个API,它将获取部分图像。这些部分应该一个接一个地上传到azure中。它应该在azure中创建一个映像。为此,我使用Append blob。有没有其他方法可以实现这一点?Block blob就是实现这一点的方法(这就是为什么它被命名为Block blob)。您可以使用添加部分图像,然后使用将它们缝合在一起以获得图像。
您不能使用相同的名称附加图像
-这是不正确的。您当然可以将数据追加到现有的追加blob。但是,不应将append blob与二进制内容一起使用,因为它会损坏数据。块blob应该像你在回答中提到的那样使用。对。这就是我们试图在代码中解释的。谢谢。我试过你的逻辑,但它被旧图像覆盖了。所以它对我不起作用。在我的用例中,我想创建一个API,它将获取部分图像。这些部分应该一个接一个地上传到azure中。它应该在azure中创建一个映像。