我正在尝试将图像从服务器上传到 Azure:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(GLOBAL_AZURE.AZURE_STORAGE_CONNECTION_STRING);
CloudBlobContainer container = storageAccount.CreateCloudBlobClient().GetContainerReference("my-container");
CloudBlockBlob blockBlob = container.GetBlockBlobReference("my-img.jpg");
using (FileStream img = File.Open("d:\...\my-img.jpg",FileMode.Open))
{
blockBlob.UploadFromStream(img);
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到UploadFromStream抛出:
"The remote server returned an error: (404) Not Found."
Run Code Online (Sandbox Code Playgroud)
my-container 在门户上创建并被定义为“公共 Blob”。
任何想法可能是什么问题?
这是由于容器不存在而导致的。请参阅此 SO 问题以及在连接到 azure 存储帐户时出现 404 错误
您可以通过container.CreateIfNotExists()在上传 Blob 之前调用来确保容器存在。就我个人而言,我将此作为某些应用程序启动代码的一部分运行,而不是在每个 blob 上传时运行。
在客户端尝试插入对象的情况下,鉴于客户端正在创建新对象,可能不会立即明白为什么这会导致 HTTP 404(未找到)响应。但是,如果客户端正在创建一个 blob,它必须能够找到 blob 容器,如果客户端正在创建一条消息,它必须能够找到一个队列,如果客户端正在添加一行,它必须能够找到桌子。
| 归档时间: |
|
| 查看次数: |
1764 次 |
| 最近记录: |