- 确认账户和连接字符串是否正确。
string connectionString = "DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=mykey;EndpointSuffix=core.windows.net";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
- 确认容器(Container)是否已创建。
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
await container.CreateIfNotExistsAsync();
- 确认Blob是否存在。
CloudBlockBlob blockBlob = container.GetBlockBlobReference("myblob");
if (await blockBlob.ExistsAsync())
{
// 操作Blob
}
- 优化Blob上传/下载速度。
BlobRequestOptions options = new BlobRequestOptions()
{
ParallelOperationThreadCount = 8, // 并发线程数
SingleBlobUploadThresholdInBytes = 1024 * 1024, // 单个Blob上传分块大小
DisableContentMD5Validation = true, // 禁用MD5校验
};
blockBlob.UploadFromFileAsync(filePath, null, options, null);
- 处理异常。
try
{
// 操作Blob
}
catch (StorageException ex)
{
if (ex.RequestInformation.HttpStatusCode == 404)
{
// Blob不存在
}
else
{
// 其他异常
}
}