我正在使用 c# 为新资源创建共享访问签名(用户应该具有在我的存储帐户上创建新资源的创建权限)。MS 文档已过时,我似乎无法使用我浏览过的不同博客文章使其正常工作。
现在我的代码看起来像这样:
public static string GetBlobSharedAccessSignitureUrl(CloudBlobContainer container,string nameOfBlobToCreateSaSfor)
{
var blob = container.GetBlockBlobReference(nameOfBlobToCreateSaSfor);
var policy = new SharedAccessBlobPolicy
{
SharedAccessExpiryTime = DateTime.Now.AddHours(1),
Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Read
};
container.GetSharedAccessSignature(policy);
string sas = blob.GetSharedAccessSignature(policy);
return blob.Uri.AbsoluteUri + sas;
}
并且返回的 url(对于我的本地机器)看起来像这样(似乎是正确的)
http://127.0.0.1:10000/devstoreaccount1/photos/photos_4.jpg?sv=2012-02-12&se=2013-01-20T10%3A13%3A17Z&sr=b&sp=rw&sig=xxx
我启动了 Azure 存储模拟器,并通过提琴手尝试 POST 到这个 URL(也尝试了 PUT)
我收到错误( 404 或 400 ,取决于我尝试过的此功能的不同代码)
我需要做其他事情吗?(在旧示例中,我看到他们事先在该位置创建了一个资源 - 我也尝试过,但也没有工作......)
Azure SDK 版本为 2.0,因此 2012 年 10 月之前的 MS 博客文章(和其他教程)已损坏(也根据 MS 开发博客http://blogs.msdn.com/b/windowsazurestorage/archive/2012/10/29/windows -azure-storage-client-library-2-0-break-changes-amp-migration-guide.aspx )
任何帮助,将不胜感激