1

クラスのメソッドDeleteIfExistsを使用すると例外が発生します。CloudBlockBlob

これは私のコードです:

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();

例外の詳細は次のとおりです。

サーバーは要求を認証できませんでした。Authorization ヘッダーの値が、署名を含めて正しく形成されていることを確認してください。

4

1 に答える 1

2

hereの例を入手して、これらを追加して、機能するかどうかを確認してください

// blob が既に存在する場合は削除し、スナップショットも削除します。

BlobRequestOptions options = new BlobRequestOptions();

options.DeleteSnapshotsOption = DeleteSnapshotsOption.IncludeSnapshots;

blob.DeleteIfExists(options);
于 2013-01-13T06:33:53.273 に答える