使用azure存储的c#在使用DeleteIfExists()时出现异常

本文关键字:异常 DeleteIfExists 存储 azure 使用 | 更新日期: 2023-09-27 17:51:26

当使用CloudBlockBlob类中的DeleteIfExists方法时,我得到一个异常。

这是我的代码:

CloudBlobClient blobClient = this._storageAccount.CreateCloudBlobClient();
            directory = directory.ToLower();
            string containerDirectory = this.GetContainer(directory);
            string relativePathWithoutContainer = this.GetRelativePathWithoutContainer(directory);
            CloudBlobContainer container = blobClient.GetContainerReference(containerDirectory);
            container.CreateIfNotExist();
            container.SetPermissions(new BlobContainerPermissions() { PublicAccess = BlobContainerPublicAccessType.Blob });
            foreach (HttpPostedFileBase file in files)
            {
                CloudBlockBlob blob = container.GetBlockBlobReference(string.Format("{0}/{1}", relativePathWithoutContainer, file.FileName.ToLower()));
                blob.DeleteIfExists();
                blob.UploadFromStream(file.InputStream,new BlobRequestOptions());
            }
            return true;

我在

这行得到了异常:
blob.DeleteIfExists();

异常的详细信息如下:

服务器无法验证请求。确保的值包含签名的授权头格式正确。

使用azure存储的c#在使用DeleteIfExists()时出现异常

从这里得到一个例子,尝试添加这些,看看它是否有效

//删除已经存在的blob,同时删除所有快照

BlobRequestOptions options = new BlobRequestOptions();
options.DeleteSnapshotsOption = DeleteSnapshotsOption.IncludeSnapshots;
blob.DeleteIfExists(options);