【问题标题】:CloudBlockBlob.UploadFromByteArrayAsync returns, but no image has been createdCloudBlockBlob.UploadFromByteArrayAsync 返回,但尚未创建图像
【发布时间】:2017-05-15 03:19:53
【问题描述】:

我有一种方法可以将我的图像上传到 Azure Blob 存储。我已经创建了我的帐户,并在我的应用程序中放置了一个名称和密钥。我看到的行为是 await UploadFromByteArrayAsync(...) 返回,而我的方法返回一个 URL。但是,当我在 Microsoft Azure 存储资源管理器中导航到我的天蓝色 blob 存储时,我可以看到没有创建任何 blob。显然,导航到该方法返回的 URL 也会返回 404。该方法已成功创建我的容器,因此与我的存储帐户的适当权限有明确的联系,我检查了字节数组的内容,它包含实际数据。有谁知道为什么我的图片从不上传?

public async Task<string> UploadImage(byte[] imageByteArr)
{
    // Retrieve storage account from the connection string.
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=redacted;AccountKey=redacted;EndpointSuffix=core.windows.net");

    // Create the blob client.
    CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

    // Retrieve a reference to a previously created container.
    CloudBlobContainer container = blobClient.GetContainerReference("user-images");

    // Create the container if it doesn't already exist.
    await container.CreateIfNotExistsAsync().ConfigureAwait(false);

    var docId = Guid.NewGuid().ToString();
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(docId);

    await blockBlob.UploadFromByteArrayAsync(imageByteArr, 0, imageByteArr.Length);

    blockBlob.Properties.ContentType = "image/jpg";
    await blockBlob.SetPropertiesAsync();

    return blockBlob.Uri.ToString();
}

【问题讨论】:

  • 我很想知道你是怎么称呼这个UploadImage 方法的?您是否正在等待完成执行?
  • 似乎是在调用 UploadImage 时“等待”的问题。尝试在 UploadImage 的返回值上调用“结果”属性。有关如何调用异步方法的更详细说明,您可以查看此回复 - stackoverflow.com/questions/9343594/…
  • 能否在上传后插入一个 blockBlob.ExistsAsync() 调用来查看它是否存在?您可能只是没有权限在浏览器中查看 url。

标签: c# azure azure-blob-storage


【解决方案1】:

我错过了创建我所关注的 blob 教程的步骤。 我们需要在代码隐藏中创建容器时调用以下内容,以便我们可以公开访问上传的图像。

container.SetPermissions(
    new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });

【讨论】:

    猜你喜欢
    • 2012-03-02
    • 2023-04-05
    • 2014-04-13
    • 1970-01-01
    • 2011-07-31
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多