を使用して BLOB コンテナーを作成した後、コンテナー内の BLOBへのパブリック アクセスをユーザーに許可するようCreateIfNotExists()にすぐに呼び出しSetPermissions()ますが、コンテナー自体へのアクセスは許可しません。
そのようです:
CloudBlobContainer pdfContainer = blobClient.GetContainerReference(ContainerName.PDFs);
if (pdfContainer.CreateIfNotExists())
pdfContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
コンテナーは正常に作成されましたが、Azure portal にログインすると、BLOB コンテナーのアクセス許可がPrivate.
アクセス許可の変更をコミットするための追加の呼び出しがありませんか? 私が見た例はどれもそれを示しているようには見えず、ドキュメントにも何も表示されません。Azure SDK の v2.0 を使用しています。
アップデート:
CreateIfNotExists()常にfalseを返しているようです。Reflector でアセンブリを開いたところ、(409) Conflict HTTP エラーをキャッチし、例外を飲み込んでいることがわかりました。これは、SDK またはサーバー側の REST 実装に問題があるようです。コンテナーが存在せず、コンテナーの作成が成功しても、サーバーから 409 が返されます。
CreateIfNotExists()今のところ、呼び出して戻り値を無視するのが最善のようです。
GetPermissions()また、呼び出す前に呼び出す必要はありませんSetPermissions()。