Azure BlobsおよびShared Access Signaturesが期限切れになると問題が発生します。 1時間(7日間)以上BLOBへのアクセスを許可する必要があるので、名前付きコンテナポリシーを使用していますが、残念ながら7日間が経過すると新しいURLが生成されないようです。Azure Blobコンテナ共有アクセス署名の有効期限が切れる
「デフォルト」ポリシーを作成するためのコードは次のとおりです。私は次のとSharedAccessSignature URLを作成
CloudStorageAccount account = new CloudStorageAccount(credentials, true);
CloudBlobClient client = new CloudBlobClient(account.BlobEndpoint, credentials);
CloudBlobContainer container = client.GetContainerReference("files");
SharedAccessPolicy sharedAccessPolicy = new SharedAccessPolicy();
sharedAccessPolicy.Permissions = SharedAccessPermissions.Read;
sharedAccessPolicy.SharedAccessStartTime = DateTime.UtcNow;
sharedAccessPolicy.SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(1);
BlobContainerPermissions blobContainerPermissions = new BlobContainerPermissions();
blobContainerPermissions.SharedAccessPolicies.Add("default", sharedAccessPolicy);
container.SetPermissions(blobContainerPermissions);
:
CloudStorageAccount account = new CloudStorageAccount(credentials, true);
CloudBlobClient client = new CloudBlobClient(account.BlobEndpoint, credentials);
CloudBlobContainer container = client.GetContainerReference("files");
CloudBlob blob = container.GetBlobReference(path);
string sas = blob.GetSharedAccessSignature(new SharedAccessPolicy(), "default");
Console.WriteLine(blob.Uri.AbsoluteUri + sas);
これを私は今から1分であることを、有効期限を設定しています、このコードに注意してください、テストやすくするためにurlを生成し、次の分(または実際のコードでは7日間)正しく動作します。 1分が終わると、URLは無効になり、期待どおりに機能しなくなります。
ただし、有効期限が過ぎると、コードを再度実行して新しいURLを生成します。残念ながら、それはまだ無効な同じURLを生成します。そのポリシーを使用して
sharedAccessPolicy.SharedAccessStartTime = DateTime.UtcNow;
sharedAccessPolicy.SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(1);
何かが10:11午前のみ午前10時10分(EDT)から有効です(:
は、私は今、そのポリシーを設定すると意味、絶対的なコンテナポリシーの開始/終了時間ですEDT)今日?
したがって、コンテナポリシーの開始時間と終了時間は絶対的です。私も彼らは親戚だと思った。 – nmit026