Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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
如何将blob上传到C#函数中的现有容器_C#_Function_Blob - Fatal编程技术网

如何将blob上传到C#函数中的现有容器

如何将blob上传到C#函数中的现有容器,c#,function,blob,C#,Function,Blob,我正在学习如何将存储blob与Azure功能结合使用,我遵循了以下文档: //创建将用于创建容器客户端的BlobServiceClient对象 BlobServiceClient BlobServiceClient=新BlobServiceClient(connectionString); //创建容器并返回容器客户端对象 BlobContainerClient containerClient=等待blobServiceClient.CreateBlobContainerSync(“”); //

我正在学习如何将存储blob与Azure功能结合使用,我遵循了以下文档:

//创建将用于创建容器客户端的BlobServiceClient对象
BlobServiceClient BlobServiceClient=新BlobServiceClient(connectionString);
//创建容器并返回容器客户端对象
BlobContainerClient containerClient=等待blobServiceClient.CreateBlobContainerSync(“”);
//获取对blob的引用
BlobClient BlobClient=containerClient.GetBlobClient(“”);
//打开文件并上载其数据
使用FileStream uploadFileStream=File.OpenRead(“”);
等待blobClient.UploadAsync(uploadFileStream,true);
uploadFileStream.Close();
教程中的这段代码只是展示了如何在新容器中上传blob,但我想上传到现有容器中。我能做什么?谢谢。

试试这边

public static async Task<bool> UploadImageAsyncPDF(string imagepath, string originalUploadedFileName)
        {
            string filefullpath = string.Empty;
            bool Success = false;
            try
            {
                if (!String.IsNullOrEmpty(SecretString) && !String.IsNullOrEmpty(ContainerName))
                using (Stream filestream = System.IO.File.OpenRead(imagepath))
                {
                    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(SecretString);
                    CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
                    CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference(ContainerName);
                    cloudBlobContainer.CreateIfNotExists();
                    CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(originalUploadedFileName);
                    cloudBlockBlob.Properties.ContentType = "application/pdf";
                    if (!cloudBlockBlob.Exists())
                    {
                        await cloudBlockBlob.UploadFromStreamAsync(filestream);
                        filefullpath = cloudBlockBlob.Uri.ToString();
                        Success = true;
                    }
                    else
                    {
                        filefullpath = "AlreadyExists";
                        Success = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("Exception in UploadImageAsyncPDF:" + ex);
                Success = false;
            }
            return Success;
        }
公共静态异步任务上载ImageAsyncPDF(字符串imagepath,字符串originalUploadedFileName)
{
string filefullpath=string.Empty;
布尔成功=假;
尝试
{
如果(!String.IsNullOrEmpty(SecretString)和&!String.IsNullOrEmpty(ContainerName))
使用(Stream filestream=System.IO.File.OpenRead(imagepath))
{
CloudStorageAccount-storageAccount=CloudStorageAccount.Parse(SecretString);
CloudBlobClient CloudBlobClient=storageAccount.CreateCloudBlobClient();
CloudBlobContainer CloudBlobContainer=cloudBlobClient.GetContainerReference(ContainerName);
cloudBlobContainer.CreateIfNotExists();
CloudBlockBlob CloudBlockBlob=cloudBlobContainer.getblockblobbreference(originalUploadedFileName);
cloudBlockBlob.Properties.ContentType=“application/pdf”;
如果(!cloudBlockBlob.Exists())
{
等待cloudBlockBlob.UploadFromStreamAsync(文件流);
filefullpath=cloudBlockBlob.Uri.ToString();
成功=真实;
}
其他的
{
filefullpath=“AlreadyExists”;
成功=真实;
}
}
}
捕获(例外情况除外)
{
WriteLog(“UploadImageAsyncPDF中的异常:“+ex”);
成功=错误;
}
回归成功;
}

使用
GetBlobContainerClient
。您获得的其他awnsers均适用于
v11

var-serviceClient=newblobserviceclient(connectionString);
var containerClient=serviceClient.GetBlobContainerClient(containerName);

使用
blobServiceClient.GetContainerReference
。我尝试过,但它说blobServiceClient不包含GetContainerReference的定义。我是否缺少使用指令?我需要补充什么指令?谢谢。没有CloudBlobContainer我能做到吗?如果可能的话,就使用BlobContainerClient?@DorisLv当然可以!使用BlobServiceClient和GetBlobContainerClient非常感谢,这正是我想要的。
public static async Task<bool> UploadImageAsyncPDF(string imagepath, string originalUploadedFileName)
        {
            string filefullpath = string.Empty;
            bool Success = false;
            try
            {
                if (!String.IsNullOrEmpty(SecretString) && !String.IsNullOrEmpty(ContainerName))
                using (Stream filestream = System.IO.File.OpenRead(imagepath))
                {
                    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(SecretString);
                    CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
                    CloudBlobContainer cloudBlobContainer = cloudBlobClient.GetContainerReference(ContainerName);
                    cloudBlobContainer.CreateIfNotExists();
                    CloudBlockBlob cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(originalUploadedFileName);
                    cloudBlockBlob.Properties.ContentType = "application/pdf";
                    if (!cloudBlockBlob.Exists())
                    {
                        await cloudBlockBlob.UploadFromStreamAsync(filestream);
                        filefullpath = cloudBlockBlob.Uri.ToString();
                        Success = true;
                    }
                    else
                    {
                        filefullpath = "AlreadyExists";
                        Success = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.WriteLog("Exception in UploadImageAsyncPDF:" + ex);
                Success = false;
            }
            return Success;
        }