Azure Blob共享SAS时间窗口

时间:2014-01-30 15:17:28

标签: c# asp.net azure azure-storage-blobs

我尝试使用此代码分享blob一分钟:

    public static void CdnInit()
    {
        StorageAccount = CloudStorageAccount.Parse(ConnectionString);
        BlobClient = StorageAccount.CreateCloudBlobClient();
    }

    public static string GetSharedBlobUrl(ContainerType conteiner, string fileName)
    {
        CloudBlob blob = BlobClient.GetBlobReference(containerNameByType(conteiner) + @"/" + fileName);
        return StorageUrl + "/" + containerNameByType(conteiner) + "/" + fileName + blob.GetSharedAccessSignature(new SharedAccessPolicy()
        {
            Permissions = SharedAccessPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow + TimeSpan.FromMinutes(1)
        });

    }

但是重定向到生成的url会给我这个错误:

Access without signed identifier cannot have time window more than 1 hour

我尝试了很多时间组合,但效果相同。

1 个答案:

答案 0 :(得分:-1)

尝试使用DateTime.Now而不是DateTime.UtcNow,这就是问题所在。 UtcNow根据GMT给出日期,根据您当地时间可能超过1小时。