azure中创建容器退出方法
Creating a container in azure exits the method
我正在学习 Azure 存储开发,我正在尝试创建一个容器,然后将文件上传到其中。我创建了一个控制台应用程序并从 Main 调用上传方法。这是创建容器的上传方法的前半部分。
public async static Task<bool> UploadToAzure()
{
string containerName = "sample-"+Guid.NewGuid().ToString();
var connectionString = "XXXXXXXXXXXXXXXXXXXXX";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
try
{
var test = blobServiceClient.GetBlobContainers();
foreach (var container in test)
{
Console.WriteLine(container.Name);
}
var result = await containerClient.CreateIfNotExistsAsync(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
var containerProp = await containerClient.GetPropertiesAsync();
Console.WriteLine(containerProp.Value);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message+"\n}");
}
我一开始只是调用 containerclient.CreateIfNotExistsAnsync()
,它不会创建容器。一时兴起,我添加了 blobServiceClient.GetBlobContainers()
,现在它将创建容器。我可以注释掉 blobServiceClient.GetBlobContainers()
并且它不会创建容器。我可以把它放在 create 方法之后,但它仍然不起作用。这是第一期。
第二个是,它在 containerclient.CreateIfNotExistsAnsync()
方法内部退出代码。它将创建文件夹但永远不会点击下一行代码。我在控制台中收到一条消息,它“以代码 0 退出。按任意键关闭此 window...”。它不会命中 Catch 或显示任何类型的错误,它只是存在。
我从我的 Udemy 课程中得到了这个模式,并且我在网上阅读了很多文章,这些似乎是正确的步骤。任何建议表示赞赏。
谢谢
从我们这边重现后,您使用的代码一直在为我们工作,直到我们发现您在调用 UploadToAzure()
时错过了使用 await 。
下面是我们使用的代码
namespace ConsoleApplication
{
class Program
{
static async Task Main(string[] args)
{
await UploadToAzure();
}
public async static Task<bool> UploadToAzure()
{
string containerName = "sample-" + Guid.NewGuid().ToString();
var connectionString = "<YOUR_COONECTION_STRING>";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
await containerClient.CreateIfNotExistsAsync(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
return true;
}
}
}
否则你可以完全删除异步并拥有
namespace CreateContainer
{
class Program
{
static async Task Main(string[] args)
{
UploadToAzure();
}
public static bool UploadToAzure()
{
string containerName = "sample-" + Guid.NewGuid().ToString();
var connectionString = "<YOUR_COONECTION_STRING>";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
containerClient.CreateIfNotExists(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
return true;
}
}
}
注意:最好使用异步方法,因为在处理大量数据时可能会遇到一些问题。
我正在学习 Azure 存储开发,我正在尝试创建一个容器,然后将文件上传到其中。我创建了一个控制台应用程序并从 Main 调用上传方法。这是创建容器的上传方法的前半部分。
public async static Task<bool> UploadToAzure()
{
string containerName = "sample-"+Guid.NewGuid().ToString();
var connectionString = "XXXXXXXXXXXXXXXXXXXXX";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
try
{
var test = blobServiceClient.GetBlobContainers();
foreach (var container in test)
{
Console.WriteLine(container.Name);
}
var result = await containerClient.CreateIfNotExistsAsync(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
var containerProp = await containerClient.GetPropertiesAsync();
Console.WriteLine(containerProp.Value);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message+"\n}");
}
我一开始只是调用 containerclient.CreateIfNotExistsAnsync()
,它不会创建容器。一时兴起,我添加了 blobServiceClient.GetBlobContainers()
,现在它将创建容器。我可以注释掉 blobServiceClient.GetBlobContainers()
并且它不会创建容器。我可以把它放在 create 方法之后,但它仍然不起作用。这是第一期。
第二个是,它在 containerclient.CreateIfNotExistsAnsync()
方法内部退出代码。它将创建文件夹但永远不会点击下一行代码。我在控制台中收到一条消息,它“以代码 0 退出。按任意键关闭此 window...”。它不会命中 Catch 或显示任何类型的错误,它只是存在。
我从我的 Udemy 课程中得到了这个模式,并且我在网上阅读了很多文章,这些似乎是正确的步骤。任何建议表示赞赏。
谢谢
从我们这边重现后,您使用的代码一直在为我们工作,直到我们发现您在调用 UploadToAzure()
时错过了使用 await 。
下面是我们使用的代码
namespace ConsoleApplication
{
class Program
{
static async Task Main(string[] args)
{
await UploadToAzure();
}
public async static Task<bool> UploadToAzure()
{
string containerName = "sample-" + Guid.NewGuid().ToString();
var connectionString = "<YOUR_COONECTION_STRING>";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
await containerClient.CreateIfNotExistsAsync(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
return true;
}
}
}
否则你可以完全删除异步并拥有
namespace CreateContainer
{
class Program
{
static async Task Main(string[] args)
{
UploadToAzure();
}
public static bool UploadToAzure()
{
string containerName = "sample-" + Guid.NewGuid().ToString();
var connectionString = "<YOUR_COONECTION_STRING>";
var blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
containerClient.CreateIfNotExists(Azure.Storage.Blobs.Models.PublicAccessType.BlobContainer);
return true;
}
}
}
注意:最好使用异步方法,因为在处理大量数据时可能会遇到一些问题。